User interface for searching

ABSTRACT

The present disclosure relates to search techniques. In one example process, the device concurrently displays remote search results and local search results. In another example process, the device provides previews of search results that include actionable user interface objects. In another example process, the device concurrently displays options for initiating a search using various search engines.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/909,947, filed Mar. 1, 2018, titled “USER INTERFACE FOR SEARCHING,which claims priority to U.S. patent application Ser. No. 14/502,989,filed Sep. 30, 2014, titled “USER INTERFACE FOR SEARCHING”, which claimspriority to U.S. Provisional Application Ser. No. 62/005,912, filed May30, 2014, which are incorporated herein in their entirety. Thisapplication relates to the following co-pending provisionalapplications: U.S. patent application titled “MULTI-DOMAIN QUERYCOMPLETION”, filed May 30, 2014, (Reference No. P22924USP1); U.S. patentapplication titled “USE OF USER FEEDBACK IN A CITATION SEARCH INDEX”,filed May 30, 2014, (Reference No. P23537USP1); and U.S. patentapplication titled “FEDERATED SEARCH”, filed May 30, 2014, (ReferenceNo. P23848USP1); which are hereby incorporated by reference in theirentirety.

TECHNICAL FIELD

This relates generally to computer user interfaces, and morespecifically to techniques for displaying a user interface forsearching.

BACKGROUND

The use of electronic devices for searching content has increasedsignificantly in recent years. Exemplary devices include cellulartelephones, touchpads, desktop computers, and laptop computers. Suchdevices are widely used by users to search for information that isstored locally to the device and for information that is stored remotelyto the device. With such devices, a user may have difficulty locating,previewing, and accessing desired information. This creates asignificant cognitive burden on the user. In addition, some methods forsearching for information take longer than necessary, thereby wastingenergy. This latter consideration is particularly important inbattery-operated devices.

SUMMARY

Some techniques for searching content using electronic devices, however,are generally cumbersome and inefficient. For example, searching forinformation frequently requires navigating a complex and time-consuminguser interface. For another example, some search techniques do notinclude a convenient method for previewing the search results. Foranother example, some techniques do not efficiently provide options tosearch various search engines. In addition, some techniques take longerthan necessary, thereby wasting energy. This latter consideration isparticularly important in battery-operated devices.

Accordingly, there is a need for electronic devices with faster, moreefficient methods and interfaces for searching. Such methods andinterfaces optionally complement or replace conventional methods forsearching. Such methods and interfaces reduce the cognitive burden on auser and produce a more efficient human-machine interface. Forbattery-operated computing devices, such methods and interfaces conservepower and increase the time between battery charges.

The above deficiencies and other problems associated with userinterfaces for searching are reduced or eliminated by the discloseddevices. In some embodiments, the device is a desktop computer. In someembodiments, the device is portable (e.g., a notebook computer, tabletcomputer, or handheld device). In some embodiments, the device has atouchpad. In some embodiments, the device has a touch-sensitive display(also known as a “touch screen” or “touch screen display”). In someembodiments, the device has a graphical user interface (GUI), one ormore processors, memory and one or more modules, programs or sets ofinstructions stored in the memory for performing multiple functions. Insome embodiments, the user interacts with the GUI primarily throughfinger contacts and gestures on the touch-sensitive surface. Executableinstructions for performing these functions may be included in acomputer readable storage medium or other computer program productconfigured for execution by one or more processors.

In accordance with some embodiments, a method is performed at anelectronic device with a display. The method includes receiving a searchinput. The method includes obtaining one or more local search resultsbased on the search input. The method includes determining whether thesearch input meets remote-search criteria. The method includes, inresponse to receiving the search input, in accordance with adetermination that the search input does not meet the remote-searchcriteria, displaying, on the display, local search result informationthat corresponds to the one or more local search results; and inaccordance with a determination that the search input meets theremote-search criteria, obtaining one or more remote search resultsbased on the search input, and concurrently displaying, on the display,remote search result information that corresponds to the one or moreremote search results and local search result information thatcorresponds to the one or more local search results.

In accordance with some embodiments, a method is performed at anelectronic device with a display. The method includes receiving a searchinput. The method includes displaying one or more search resultsobtained based on the received search input. The method includesreceiving a request to preview a respective search result of the one ormore search results. The method also includes, in response to receivingthe request to preview the respective search result, displaying apreview of content of the respective search result, wherein the previewof content of the respective search result includes one or moreactionable user interface objects that, when activated, cause the deviceto perform an operation associated with the respective search result.

In accordance with some embodiments, a method is performed at anelectronic device with a display. The method includes receiving a searchinput. The method includes determining whether the search input includesa search-engine-specifier term. The method also includes, in accordancewith a determination that the search input includes asearch-engine-specifier term that corresponds to a respective searchengine, concurrently displaying one or more selectable options forinitiating a search of at least a first portion of the search inputusing the respective search engine and one or more selectable optionsfor initiating a search of at least a second portion of the search inputusing a default search engine.

Thus, devices are provided with faster, more efficient methods andinterfaces for searching, thereby increasing the effectiveness,efficiency, and user satisfaction with such devices. Such methods andinterfaces may complement or replace conventional methods for searching.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned embodiments of theinvention as well as additional embodiments thereof, reference should bemade to the Description of Embodiments below, in conjunction with thefollowing drawings in which like reference numerals refer tocorresponding parts throughout the figures.

FIG. 1A is a block diagram illustrating a portable multifunction devicewith a display in accordance with some embodiments.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments.

FIG. 2 illustrates a portable multifunction device having a touch screenin accordance with some embodiments.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay in accordance with some embodiments.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on a portable multifunction device in accordance with someembodiments.

FIG. 4B illustrates an exemplary user interface for a multifunctiondevice with a touch-sensitive surface that is separate from the displayin accordance with some embodiments.

FIGS. 5A-5M illustrate exemplary user interfaces for displaying searchresult information in accordance with some embodiments.

FIGS. 6A-6B are flow diagrams illustrating a method for displayingsearch result information in accordance with some embodiments.

FIGS. 7A-7N illustrate exemplary user interfaces for previewing contentof a search result in accordance with some embodiments.

FIG. 8 is a flow diagram illustrating a method for previewing content ofa search result in accordance with some embodiments.

FIGS. 9A-9M illustrate exemplary user interfaces for providing optionsto initiate a search using a search engine in accordance with someembodiments.

FIGS. 10A-10B are flow diagrams illustrating a method for providingoptions to initiate a search using a search engine in accordance withsome embodiments.

FIG. 11 illustrates a functional block diagram of an electronic devicein accordance with some embodiments.

DESCRIPTION OF EMBODIMENTS

Below, FIGS. 1A-1B, 2, 3, and 4A-4B provide a description of exemplarydevices for searching. FIGS. 5A-5M, 7A-7N, 9A-9M, and 11 illustrateexemplary user interfaces for searching. The user interfaces in thefigures are also used to illustrate the processes described below,including the processes in FIGS. 6A-6B, 8, and 10A-10B.

Although the following description uses terms “first,” “second,” etc. todescribe various elements, these elements should not be limited by theterms. These terms are only used to distinguish one element fromanother. For example, a first touch could be termed a second touch, and,similarly, a second touch could be termed a first touch, withoutdeparting from the scope of the various described embodiments. The firsttouch and the second touch are both touches, but they are not the sametouch.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a”, “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a”, “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

The term “if” may be construed to mean “when” or “upon” or “in responseto determining” or “in response to detecting,” depending on the context.Similarly, the phrase “if it is determined” or “if [a stated conditionor event] is detected” may be construed to mean “upon determining” or“in response to determining” or “upon detecting [the stated condition orevent]” or “in response to detecting [the stated condition or event],”depending on the context.

Embodiments of electronic devices, user interfaces for such devices, andassociated processes for using such devices are described. In someembodiments, the device is a portable communications device, such as amobile telephone, that also contains other functions, such as PDA and/ormusic player functions. Exemplary embodiments of portable multifunctiondevices include, without limitation, the iPhone®, iPod Touch®, and iPad®devices from Apple Inc. of Cupertino, Calif. Other portable electronicdevices, such as laptops or tablet computers with touch-sensitivesurfaces (e.g., touch screen displays and/or touchpads), are,optionally, used. It should also be understood that, in someembodiments, the device is not a portable communications device, but isa desktop computer with a touch-sensitive surface (e.g., a touch screendisplay and/or a touchpad).

In the discussion that follows, an electronic device that includes adisplay and a touch-sensitive surface is described. It should beunderstood, however, that the electronic device optionally includes oneor more other physical user-interface devices, such as a physicalkeyboard, a mouse, and/or a joystick.

The device may support a variety of applications, such as one or more ofthe following: a drawing application, a presentation application, a wordprocessing application, a website creation application, a disk authoringapplication, a spreadsheet application, a gaming application, atelephone application, a video conferencing application, an e-mailapplication, an instant messaging application, a workout supportapplication, a photo management application, a digital cameraapplication, a digital video camera application, a web browsingapplication, a digital music player application, and/or a digital videoplayer application.

The various applications that are executed on the device optionally useat least one common physical user-interface device, such as thetouch-sensitive surface. One or more functions of the touch-sensitivesurface as well as corresponding information displayed on the deviceare, optionally, adjusted and/or varied from one application to the nextand/or within a respective application. In this way, a common physicalarchitecture (such as the touch-sensitive surface) of the deviceoptionally supports the variety of applications with user interfacesthat are intuitive and transparent to the user.

Attention is now directed toward embodiments of portable devices withtouch-sensitive displays. FIG. 1A is a block diagram illustratingportable multifunction device 100 with touch-sensitive display system112 in accordance with some embodiments. Touch-sensitive display 112 issometimes called a “touch screen” for convenience and is sometimes knownas or called a “touch-sensitive display system.” Device 100 includesmemory 102 (which optionally includes one or more computer-readablestorage mediums), memory controller 122, one or more processing units(CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry110, speaker 111, microphone 113, input/output (I/O) subsystem 106,other input control devices 116, and external port 124. Device 100optionally includes one or more optical sensors 164. Device 100optionally includes one or more contact intensity sensors 165 fordetecting intensity of contacts on device 100 (e.g., a touch-sensitivesurface such as touch-sensitive display system 112 of device 100).Device 100 optionally includes one or more tactile output generators 167for generating tactile outputs on device 100 (e.g., generating tactileoutputs on a touch-sensitive surface such as touch-sensitive displaysystem 112 of device 100 or touchpad 355 of device 300). Thesecomponents optionally communicate over one or more communication busesor signal lines 103.

As used in the specification and claims, the term “intensity” of acontact on a touch-sensitive surface refers to the force or pressure(force per unit area) of a contact (e.g., a finger contact) on thetouch-sensitive surface, or to a substitute (proxy) for the force orpressure of a contact on the touch-sensitive surface. The intensity of acontact has a range of values that includes at least four distinctvalues and more typically includes hundreds of distinct values (e.g., atleast 256). Intensity of a contact is, optionally, determined (ormeasured) using various approaches and various sensors or combinationsof sensors. For example, one or more force sensors underneath oradjacent to the touch-sensitive surface are, optionally, used to measureforce at various points on the touch-sensitive surface. In someimplementations, force measurements from multiple force sensors arecombined (e.g., a weighted average) to determine an estimated force of acontact. Similarly, a pressure-sensitive tip of a stylus is, optionally,used to determine a pressure of the stylus on the touch-sensitivesurface. Alternatively, the size of the contact area detected on thetouch-sensitive surface and/or changes thereto, the capacitance of thetouch-sensitive surface proximate to the contact and/or changes thereto,and/or the resistance of the touch-sensitive surface proximate to thecontact and/or changes thereto are, optionally, used as a substitute forthe force or pressure of the contact on the touch-sensitive surface. Insome implementations, the substitute measurements for contact force orpressure are used directly to determine whether an intensity thresholdhas been exceeded (e.g., the intensity threshold is described in unitscorresponding to the substitute measurements). In some implementations,the substitute measurements for contact force or pressure are convertedto an estimated force or pressure, and the estimated force or pressureis used to determine whether an intensity threshold has been exceeded(e.g., the intensity threshold is a pressure threshold measured in unitsof pressure). Using the intensity of a contact as an attribute of a userinput allows for user access to additional device functionality that mayotherwise not be accessible by the user on a reduced-size device withlimited real estate for displaying affordances (e.g., on atouch-sensitive display) and/or receiving user input (e.g., via atouch-sensitive display, a touch-sensitive surface, or aphysical/mechanical control such as a knob or a button).

As used in the specification and claims, the term “tactile output”refers to physical displacement of a device relative to a previousposition of the device, physical displacement of a component (e.g., atouch-sensitive surface) of a device relative to another component(e.g., housing) of the device, or displacement of the component relativeto a center of mass of the device that will be detected by a user withthe user's sense of touch. For example, in situations where the deviceor the component of the device is in contact with a surface of a userthat is sensitive to touch (e.g., a finger, palm, or other part of auser's hand), the tactile output generated by the physical displacementwill be interpreted by the user as a tactile sensation corresponding toa perceived change in physical characteristics of the device or thecomponent of the device. For example, movement of a touch-sensitivesurface (e.g., a touch-sensitive display or trackpad) is, optionally,interpreted by the user as a “down click” or “up click” of a physicalactuator button. In some cases, a user will feel a tactile sensationsuch as an “down click” or “up click” even when there is no movement ofa physical actuator button associated with the touch-sensitive surfacethat is physically pressed (e.g., displaced) by the user's movements. Asanother example, movement of the touch-sensitive surface is, optionally,interpreted or sensed by the user as “roughness” of the touch-sensitivesurface, even when there is no change in smoothness of thetouch-sensitive surface. While such interpretations of touch by a userwill be subject to the individualized sensory perceptions of the user,there are many sensory perceptions of touch that are common to a largemajority of users. Thus, when a tactile output is described ascorresponding to a particular sensory perception of a user (e.g., an “upclick,” a “down click,” “roughness”), unless otherwise stated, thegenerated tactile output corresponds to physical displacement of thedevice or a component thereof that will generate the described sensoryperception for a typical (or average) user.

It should be appreciated that device 100 is only one example of aportable multifunction device, and that device 100 optionally has moreor fewer components than shown, optionally combines two or morecomponents, or optionally has a different configuration or arrangementof the components. The various components shown in FIG. 1A areimplemented in hardware, software, or a combination of both hardware andsoftware, including one or more signal processing and/orapplication-specific integrated circuits.

Memory 102 may include one or more computer-readable storage mediums.The computer-readable storage mediums may be tangible andnon-transitory. Memory 102 may include high-speed random access memoryand may also include non-volatile memory, such as one or more magneticdisk storage devices, flash memory devices, or other non-volatilesolid-state memory devices. Memory controller 122 may control access tomemory 102 by other components of device 100.

Peripherals interface 118 can be used to couple input and outputperipherals of the device to CPU 120 and memory 102. The one or moreprocessors 120 run or execute various software programs and/or sets ofinstructions stored in memory 102 to perform various functions fordevice 100 and to process data. In some embodiments, peripheralsinterface 118, CPU 120, and memory controller 122 may be implemented ona single chip, such as chip 104. In some other embodiments, they may beimplemented on separate chips.

RF (radio frequency) circuitry 108 receives and sends RF signals, alsocalled electromagnetic signals. RF circuitry 108 converts electricalsignals to/from electromagnetic signals and communicates withcommunications networks and other communications devices via theelectromagnetic signals. RF circuitry 108 optionally includes well-knowncircuitry for performing these functions, including but not limited toan antenna system, an RF transceiver, one or more amplifiers, a tuner,one or more oscillators, a digital signal processor, a CODEC chipset, asubscriber identity module (SIM) card, memory, and so forth. RFcircuitry 108 optionally communicates with networks, such as theInternet, also referred to as the World Wide Web (WWW), an intranetand/or a wireless network, such as a cellular telephone network, awireless local area network (LAN) and/or a metropolitan area network(MAN), and other devices by wireless communication. The RF circuitry 108optionally includes well-known circuitry for detecting near fieldcommunication (NFC) fields, such as by a short-range communicationradio. The wireless communication optionally uses any of a plurality ofcommunications standards, protocols, and technologies, including but notlimited to Global System for Mobile Communications (GSM), Enhanced DataGSM Environment (EDGE), high-speed downlink packet access (HSDPA),high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO),HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), long term evolution (LTE), nearfield communication (NFC), wideband code division multiple access(W-CDMA), code division multiple access (CDMA), time division multipleaccess (TDMA), Bluetooth, Bluetooth Low Energy (BTLE), Wireless Fidelity(Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n,and/or IEEE 802.11ac), voice over Internet Protocol (VoIP), Wi-MAX, aprotocol for e-mail (e.g., Internet message access protocol (IMAP)and/or post office protocol (POP)), instant messaging (e.g., extensiblemessaging and presence protocol (XMPP), Session Initiation Protocol forInstant Messaging and Presence Leveraging Extensions (SIMPLE), InstantMessaging and Presence Service (IMPS)), and/or Short Message Service(SMS), or any other suitable communication protocol, includingcommunication protocols not yet developed as of the filing date of thisdocument.

Audio circuitry 110, speaker 111, and microphone 113 provide an audiointerface between a user and device 100. Audio circuitry 110 receivesaudio data from peripherals interface 118, converts the audio data to anelectrical signal, and transmits the electrical signal to speaker 111.Speaker 111 converts the electrical signal to human-audible sound waves.Audio circuitry 110 also receives electrical signals converted bymicrophone 113 from sound waves. Audio circuitry 110 converts theelectrical signal to audio data and transmits the audio data toperipherals interface 118 for processing. Audio data may be retrievedfrom and/or transmitted to memory 102 and/or RF circuitry 108 byperipherals interface 118. In some embodiments, audio circuitry 110 alsoincludes a headset jack (e.g., 212, FIG. 2). The headset jack providesan interface between audio circuitry 110 and removable audioinput/output peripherals, such as output-only headphones or a headsetwith both output (e.g., a headphone for one or both ears) and input(e.g., a microphone).

I/O subsystem 106 couples input/output peripherals on device 100, suchas touch screen 112 and other input control devices 116, to peripheralsinterface 118. I/O subsystem 106 optionally includes display controller156, optical sensor controller 158, intensity sensor controller 159,haptic feedback controller 161, and one or more input controllers 160for other input or control devices. The one or more input controllers160 receive/send electrical signals from/to other input control devices116. The other input control devices 116 optionally include physicalbuttons (e.g., push buttons, rocker buttons, etc.), dials, sliderswitches, joysticks, click wheels, and so forth. In some alternateembodiments, input controller(s) 160 are, optionally, coupled to any (ornone) of the following: a keyboard, an infrared port, a USB port, and apointer device such as a mouse. The one or more buttons (e.g., 208, FIG.2) optionally include an up/down button for volume control of speaker111 and/or microphone 113. The one or more buttons optionally include apush button (e.g., 206, FIG. 2).

A quick press of the push button may disengage a lock of touch screen112 or begin a process that uses gestures on the touch screen to unlockthe device, as described in U.S. patent application Ser. No. 11/322,549,“Unlocking a Device by Performing Gestures on an Unlock Image,” filedDec. 23, 2005, U.S. Pat. No. 7,657,849, which is hereby incorporated byreference in its entirety. A longer press of the push button (e.g., 206)may turn power to device 100 on or off. The user may be able tocustomize a functionality of one or more of the buttons. Touch screen112 is used to implement virtual or soft buttons and one or more softkeyboards.

Touch-sensitive display 112 provides an input interface and an outputinterface between the device and a user. Display controller 156 receivesand/or sends electrical signals from/to touch screen 112. Touch screen112 displays visual output to the user. The visual output may includegraphics, text, icons, video, and any combination thereof (collectivelytermed “graphics”). In some embodiments, some or all of the visualoutput may correspond to user-interface objects.

Touch screen 112 has a touch-sensitive surface, sensor, or set ofsensors that accepts input from the user based on haptic and/or tactilecontact. Touch screen 112 and display controller 156 (along with anyassociated modules and/or sets of instructions in memory 102) detectcontact (and any movement or breaking of the contact) on touch screen112 and convert the detected contact into interaction withuser-interface objects (e.g., one or more soft keys, icons, web pages,or images) that are displayed on touch screen 112. In an exemplaryembodiment, a point of contact between touch screen 112 and the usercorresponds to a finger of the user.

Touch screen 112 may use LCD (liquid crystal display) technology, LPD(light emitting polymer display) technology, or LED (light emittingdiode) technology, although other display technologies may be used inother embodiments. Touch screen 112 and display controller 156 maydetect contact and any movement or breaking thereof using any of aplurality of touch sensing technologies now known or later developed,including but not limited to capacitive, resistive, infrared, andsurface acoustic wave technologies, as well as other proximity sensorarrays or other elements for determining one or more points of contactwith touch screen 112. In an exemplary embodiment, projected mutualcapacitance sensing technology is used, such as that found in theiPhone® and iPod Touch® from Apple Inc. of Cupertino, Calif.

A touch-sensitive display in some embodiments of touch screen 112 may beanalogous to the multi-touch sensitive touchpads described in thefollowing U.S. Pat. No. 6,323,846 (Westerman et al.), U.S. Pat. No.6,570,557 (Westerman et al.), and/or U.S. Pat. No. 6,677,932(Westerman), and/or U.S. Patent Publication 2002/0015024A1, each ofwhich is hereby incorporated by reference in its entirety. However,touch screen 112 displays visual output from device 100, whereastouch-sensitive touchpads do not provide visual output.

A touch-sensitive display in some embodiments of touch screen 112 may beas described in the following applications: (1) U.S. patent applicationSer. No. 11/381,313, “Multipoint Touch Surface Controller,” filed May 2,2006; (2) U.S. patent application Ser. No. 10/840,862, “MultipointTouchscreen,” filed May 6, 2004; (3) U.S. patent application Ser. No.10/903,964, “Gestures For Touch Sensitive Input Devices,” filed Jul. 30,2004; (4) U.S. patent application Ser. No. 11/048,264, “Gestures ForTouch Sensitive Input Devices,” filed Jan. 31, 2005; (5) U.S. patentapplication Ser. No. 11/038,590, “Mode-Based Graphical User InterfacesFor Touch Sensitive Input Devices,” filed Jan. 18, 2005; (6) U.S. patentapplication Ser. No. 11/228,758, “Virtual Input Device Placement On ATouch Screen User Interface,” filed Sep. 16, 2005; (7) U.S. patentapplication Ser. No. 11/228,700, “Operation Of A Computer With A TouchScreen Interface,” filed Sep. 16, 2005; (8) U.S. patent application Ser.No. 11/228,737, “Activating Virtual Keys Of A Touch-Screen VirtualKeyboard,” filed Sep. 16, 2005; and (9) U.S. patent application Ser. No.11/367,749, “Multi-Functional Hand-Held Device,” filed Mar. 3, 2006. Allof these applications are incorporated by reference herein in theirentirety.

Touch screen 112 may have a video resolution in excess of 100 dpi. Insome embodiments, the touch screen has a video resolution ofapproximately 160 dpi. The user may make contact with touch screen 112using any suitable object or appendage, such as a stylus, a finger, andso forth. In some embodiments, the user interface is designed to workprimarily with finger-based contacts and gestures, which can be lessprecise than stylus-based input due to the larger area of contact of afinger on the touch screen. In some embodiments, the device translatesthe rough finger-based input into a precise pointer/cursor position orcommand for performing the actions desired by the user.

In some embodiments, in addition to the touch screen, device 100 mayinclude a touchpad (not shown) for activating or deactivating particularfunctions. In some embodiments, the touchpad is a touch-sensitive areaof the device that, unlike the touch screen, does not display visualoutput. The touchpad may be a touch-sensitive surface that is separatefrom touch screen 112 or an extension of the touch-sensitive surfaceformed by the touch screen.

Device 100 also includes power system 162 for powering the variouscomponents. Power system 162 may include a power management system, oneor more power sources (e.g., battery, alternating current (AC)), arecharging system, a power failure detection circuit, a power converteror inverter, a power status indicator (e.g., a light-emitting diode(LED)) and any other components associated with the generation,management and distribution of power in portable devices.

Device 100 may also include one or more optical sensors 164. FIG. 1Ashows an optical sensor coupled to optical sensor controller 158 in I/Osubsystem 106. Optical sensor 164 may include charge-coupled device(CCD) or complementary metal-oxide semiconductor (CMOS)phototransistors. Optical sensor 164 receives light from theenvironment, projected through one or more lenses, and converts thelight to data representing an image. In conjunction with imaging module143 (also called a camera module), optical sensor 164 may capture stillimages or video. In some embodiments, an optical sensor is located onthe back of device 100, opposite touch screen display 112 on the frontof the device so that the touch screen display may be used as aviewfinder for still and/or video image acquisition. In someembodiments, an optical sensor is located on the front of the device sothat the user's image may be obtained for video conferencing while theuser views the other video conference participants on the touch screendisplay. In some embodiments, the position of optical sensor 164 can bechanged by the user (e.g., by rotating the lens and the sensor in thedevice housing) so that a single optical sensor 164 may be used alongwith the touch screen display for both video conferencing and stilland/or video image acquisition.

Device 100 optionally also includes one or more contact intensitysensors 165. FIG. 1A shows a contact intensity sensor coupled tointensity sensor controller 159 in I/O subsystem 106. Contact intensitysensor 165 optionally includes one or more piezoresistive strain gauges,capacitive force sensors, electric force sensors, piezoelectric forcesensors, optical force sensors, capacitive touch-sensitive surfaces, orother intensity sensors (e.g., sensors used to measure the force (orpressure) of a contact on a touch-sensitive surface). Contact intensitysensor 165 receives contact intensity information (e.g., pressureinformation or a proxy for pressure information) from the environment.In some embodiments, at least one contact intensity sensor is collocatedwith, or proximate to, a touch-sensitive surface (e.g., touch-sensitivedisplay system 112). In some embodiments, at least one contact intensitysensor is located on the back of device 100, opposite touch screendisplay 112, which is located on the front of device 100.

Device 100 may also include one or more proximity sensors 166. FIG. 1Ashows proximity sensor 166 coupled to peripherals interface 118.Alternately, proximity sensor 166 may be coupled to input controller 160in I/O subsystem 106. Proximity sensor 166 may perform as described inU.S. patent application Ser. No. 11/241,839, “Proximity Detector InHandheld Device”; Ser. No. 11/240,788, “Proximity Detector In HandheldDevice”; Ser. No. 11/620,702, “Using Ambient Light Sensor To AugmentProximity Sensor Output”; Ser. No. 11/586,862, “Automated Response ToAnd Sensing Of User Activity In Portable Devices”; and Ser. No.11/638,251, “Methods And Systems For Automatic Configuration OfPeripherals,” which are hereby incorporated by reference in theirentirety. In some embodiments, the proximity sensor turns off anddisables touch screen 112 when the multifunction device is placed nearthe user's ear (e.g., when the user is making a phone call).

Device 100 optionally also includes one or more tactile outputgenerators 167. FIG. 1A shows a tactile output generator coupled tohaptic feedback controller 161 in I/O subsystem 106. Tactile outputgenerator 167 optionally includes one or more electroacoustic devicessuch as speakers or other audio components and/or electromechanicaldevices that convert energy into linear motion such as a motor,solenoid, electroactive polymer, piezoelectric actuator, electrostaticactuator, or other tactile output generating component (e.g., acomponent that converts electrical signals into tactile outputs on thedevice). Contact intensity sensor 165 receives tactile feedbackgeneration instructions from haptic feedback module 133 and generatestactile outputs on device 100 that are capable of being sensed by a userof device 100. In some embodiments, at least one tactile outputgenerator is collocated with, or proximate to, a touch-sensitive surface(e.g., touch-sensitive display system 112) and, optionally, generates atactile output by moving the touch-sensitive surface vertically (e.g.,in/out of a surface of device 100) or laterally (e.g., back and forth inthe same plane as a surface of device 100). In some embodiments, atleast one tactile output generator sensor is located on the back ofdevice 100, opposite touch screen display 112, which is located on thefront of device 100.

Device 100 may also include one or more accelerometers 168. FIG. 1Ashows accelerometer 168 coupled to peripherals interface 118.Alternately, accelerometer 168 may be coupled to an input controller 160in I/O subsystem 106. Accelerometer 168 may perform as described in U.S.Patent Publication No. 20050190059, “Acceleration-based Theft DetectionSystem for Portable Electronic Devices,” and U.S. Patent Publication No.20060017692, “Methods And Apparatuses For Operating A Portable DeviceBased On An Accelerometer,” both of which are incorporated by referenceherein in their entirety. In some embodiments, information is displayedon the touch screen display in a portrait view or a landscape view basedon an analysis of data received from the one or more accelerometers.Device 100 optionally includes, in addition to accelerometer(s) 168, amagnetometer (not shown) and a GPS (or GLONASS or other globalnavigation system) receiver (not shown) for obtaining informationconcerning the location and orientation (e.g., portrait or landscape) ofdevice 100.

In some embodiments, the software components stored in memory 102include operating system 126, communication module (or set ofinstructions) 128, contact/motion module (or set of instructions) 130,graphics module (or set of instructions) 132, text input module (or setof instructions) 134, Global Positioning System (GPS) module (or set ofinstructions) 135, and applications (or sets of instructions) 136.Furthermore, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3)stores device/global internal state 157, as shown in FIGS. 1A and 3.Device/global internal state 157 includes one or more of: activeapplication state, indicating which applications, if any, are currentlyactive; display state, indicating what applications, views or otherinformation occupy various regions of touch screen display 112; sensorstate, including information obtained from the device's various sensorsand input control devices 116; and location information concerning thedevice's location and/or attitude.

Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, iOS,WINDOWS, or an embedded operating system such as VxWorks) includesvarious software components and/or drivers for controlling and managinggeneral system tasks (e.g., memory management, storage device control,power management, etc.) and facilitates communication between varioushardware and software components.

Communication module 128 facilitates communication with other devicesover one or more external ports 124 and also includes various softwarecomponents for handling data received by RF circuitry 108 and/orexternal port 124. External port 124 (e.g., Universal Serial Bus (USB),FIREWIRE, etc.) is adapted for coupling directly to other devices orindirectly over a network (e.g., the Internet, wireless LAN, etc.). Insome embodiments, the external port is a multi-pin (e.g., 30-pin)connector that is the same as, or similar to and/or compatible with, the30-pin connector used on iPod® (trademark of Apple Inc.) devices.

Contact/motion module 130 optionally detects contact with touch screen112 (in conjunction with display controller 156) and othertouch-sensitive devices (e.g., a touchpad or physical click wheel).Contact/motion module 130 includes various software components forperforming various operations related to detection of contact, such asdetermining if contact has occurred (e.g., detecting a finger-downevent), determining an intensity of the contact (e.g., the force orpressure of the contact or a substitute for the force or pressure of thecontact), determining if there is movement of the contact and trackingthe movement across the touch-sensitive surface (e.g., detecting one ormore finger-dragging events), and determining if the contact has ceased(e.g., detecting a finger-up event or a break in contact).Contact/motion module 130 receives contact data from the touch-sensitivesurface. Determining movement of the point of contact, which isrepresented by a series of contact data, optionally includes determiningspeed (magnitude), velocity (magnitude and direction), and/or anacceleration (a change in magnitude and/or direction) of the point ofcontact. These operations are, optionally, applied to single contacts(e.g., one finger contacts) or to multiple simultaneous contacts (e.g.,“multitouch”/multiple finger contacts). In some embodiments,contact/motion module 130 and display controller 156 detect contact on atouchpad.

In some embodiments, contact/motion module 130 uses a set of one or moreintensity thresholds to determine whether an operation has beenperformed by a user (e.g., to determine whether a user has “clicked” onan icon). In some embodiments, at least a subset of the intensitythresholds are determined in accordance with software parameters (e.g.,the intensity thresholds are not determined by the activation thresholdsof particular physical actuators and can be adjusted without changingthe physical hardware of device 100). For example, a mouse “click”threshold of a trackpad or touch screen display can be set to any of alarge range of predefined threshold values without changing the trackpador touch screen display hardware. Additionally, in some implementations,a user of the device is provided with software settings for adjustingone or more of the set of intensity thresholds (e.g., by adjustingindividual intensity thresholds and/or by adjusting a plurality ofintensity thresholds at once with a system-level click “intensity”parameter).

Contact/motion module 130 optionally detects a gesture input by a user.Different gestures on the touch-sensitive surface have different contactpatterns (e.g., different motions, timings, and/or intensities ofdetected contacts). Thus, a gesture is, optionally, detected bydetecting a particular contact pattern. For example, detecting a fingertap gesture includes detecting a finger-down event followed by detectinga finger-up (liftoff) event at the same position (or substantially thesame position) as the finger-down event (e.g., at the position of anicon). As another example, detecting a finger swipe gesture on thetouch-sensitive surface includes detecting a finger-down event followedby detecting one or more finger-dragging events, and subsequentlyfollowed by detecting a finger-up (liftoff) event.

Graphics module 132 includes various known software components forrendering and displaying graphics on touch screen 112 or other display,including components for changing the visual impact (e.g., brightness,transparency, saturation, contrast, or other visual property) ofgraphics that are displayed. As used herein, the term “graphics”includes any object that can be displayed to a user, including, withoutlimitation, text, web pages, icons (such as user-interface objectsincluding soft keys), digital images, videos, animations, and the like.

In some embodiments, graphics module 132 stores data representinggraphics to be used. Each graphic is, optionally, assigned acorresponding code. Graphics module 132 receives, from applicationsetc., one or more codes specifying graphics to be displayed along with,if necessary, coordinate data and other graphic property data, and thengenerates screen image data to output to display controller 156.

Haptic feedback module 133 includes various software components forgenerating instructions used by tactile output generator(s) 167 toproduce tactile outputs at one or more locations on device 100 inresponse to user interactions with device 100.

Text input module 134, which may be a component of graphics module 132,provides soft keyboards for entering text in various applications (e.g.,contacts 137, e-mail 140, IM 141, browser 147, and any other applicationthat needs text input).

GPS module 135 determines the location of the device and provides thisinformation for use in various applications (e.g., to telephone 138 foruse in location-based dialing; to camera 143 as picture/video metadata;and to applications that provide location-based services such as weatherwidgets, local yellow page widgets, and map/navigation widgets).

Applications 136 may include the following modules (or sets ofinstructions), or a subset or superset thereof:

-   -   Contacts module 137 (sometimes called an address book or contact        list);    -   Telephone module 138;    -   Video conferencing module 139;    -   E-mail client module 140;    -   Instant messaging (IM) module 141;    -   Workout support module 142;    -   Camera module 143 for still and/or video images;    -   Image management module 144;    -   Video player module;    -   Music player module;    -   Browser module 147;    -   Calendar module 148;    -   Widget modules 149, which may include one or more of: weather        widget 149-1, stocks widget 149-2, calculator widget 149-3,        alarm clock widget 149-4, dictionary widget 149-5, and other        widgets obtained by the user, as well as user-created widgets        149-6;    -   Widget creator module 150 for making user-created widgets 149-6;    -   Search module 151;    -   Video and music player module 152, which merges video player        module and music player module;    -   Notes module 153;    -   Map module 154; and/or    -   Online video module 155.

Examples of other applications 136 that may be stored in memory 102include other word processing applications, other image editingapplications, drawing applications, presentation applications,JAVA-enabled applications, encryption, digital rights management, voicerecognition, and voice replication.

In conjunction with touch screen 112, display controller 156,contact/motion module 130, graphics module 132, and text input module134, contacts module 137 may be used to manage an address book orcontact list (e.g., stored in application internal state 192 of contactsmodule 137 in memory 102 or memory 370), including: adding name(s) tothe address book; deleting name(s) from the address book; associatingtelephone number(s), e-mail address(es), physical address(es) or otherinformation with a name; associating an image with a name; categorizingand sorting names; providing telephone numbers or e-mail addresses toinitiate and/or facilitate communications by telephone 138, videoconference 139, e-mail 140, or IM 141; and so forth.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, contact/motionmodule 130, graphics module 132, and text input module 134, telephonemodule 138 may be used to enter a sequence of characters correspondingto a telephone number, access one or more telephone numbers in contactsmodule 137, modify a telephone number that has been entered, dial arespective telephone number, conduct a conversation, and disconnect orhang up when the conversation is completed. As noted above, the wirelesscommunication may use any of a plurality of communications standards,protocols, and technologies.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, optical sensor164, optical sensor controller 158, contact/motion module 130, graphicsmodule 132, text input module 134, contacts module 137, and telephonemodule 138, video conference module 139 includes executable instructionsto initiate, conduct, and terminate a video conference between a userand one or more other participants in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, and textinput module 134, e-mail client module 140 includes executableinstructions to create, send, receive, and manage e-mail in response touser instructions. In conjunction with image management module 144,e-mail client module 140 makes it very easy to create and send e-mailswith still or video images taken with camera module 143.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, and textinput module 134, the instant messaging module 141 includes executableinstructions to enter a sequence of characters corresponding to aninstant message, to modify previously entered characters, to transmit arespective instant message (for example, using a Short Message Service(SMS) or Multimedia Message Service (MMS) protocol for telephony-basedinstant messages or using XMPP, SIMPLE, or IMPS for Internet-basedinstant messages), to receive instant messages, and to view receivedinstant messages. In some embodiments, transmitted and/or receivedinstant messages may include graphics, photos, audio files, video filesand/or other attachments as are supported in an MMS and/or an EnhancedMessaging Service (EMS). As used herein, “instant messaging” refers toboth telephony-based messages (e.g., messages sent using SMS or MMS) andInternet-based messages (e.g., messages sent using XMPP, SIMPLE, orIMPS).

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, textinput module 134, GPS module 135, map module 154, and music playermodule, workout support module 142 includes executable instructions tocreate workouts (e.g., with time, distance, and/or calorie burninggoals); communicate with workout sensors (sports devices); receiveworkout sensor data; calibrate sensors used to monitor a workout; selectand play music for a workout; and display, store, and transmit workoutdata.

In conjunction with touch screen 112, display controller 156, opticalsensor(s) 164, optical sensor controller 158, contact/motion module 130,graphics module 132, and image management module 144, camera module 143includes executable instructions to capture still images or video(including a video stream) and store them into memory 102, modifycharacteristics of a still image or video, or delete a still image orvideo from memory 102.

In conjunction with touch screen 112, display controller 156,contact/motion module 130, graphics module 132, text input module 134,and camera module 143, image management module 144 includes executableinstructions to arrange, modify (e.g., edit), or otherwise manipulate,label, delete, present (e.g., in a digital slide show or album), andstore still and/or video images.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, and textinput module 134, browser module 147 includes executable instructions tobrowse the Internet in accordance with user instructions, includingsearching, linking to, receiving, and displaying web pages or portionsthereof, as well as attachments and other files linked to web pages.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, textinput module 134, e-mail client module 140, and browser module 147,calendar module 148 includes executable instructions to create, display,modify, and store calendars and data associated with calendars (e.g.,calendar entries, to-do lists, etc.) in accordance with userinstructions.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, textinput module 134, and browser module 147, widget modules 149 aremini-applications that may be downloaded and used by a user (e.g.,weather widget 149-1, stocks widget 149-2, calculator widget 149-3,alarm clock widget 149-4, and dictionary widget 149-5) or created by theuser (e.g., user-created widget 149-6). In some embodiments, a widgetincludes an HTML (Hypertext Markup Language) file, a CSS (CascadingStyle Sheets) file, and a JavaScript file. In some embodiments, a widgetincludes an XML (Extensible Markup Language) file and a JavaScript file(e.g., Yahoo! Widgets).

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact/motion module 130, graphics module 132, textinput module 134, and browser module 147, the widget creator module 150may be used by a user to create widgets (e.g., turning a user-specifiedportion of a web page into a widget).

In conjunction with touch screen 112, display controller 156,contact/motion module 130, graphics module 132, and text input module134, search module 151 includes executable instructions to search fortext, music, sound, image, video, and/or other files in memory 102 thatmatch one or more search criteria (e.g., one or more user-specifiedsearch terms) in accordance with user instructions.

In conjunction with touch screen 112, display controller 156,contact/motion module 130, graphics module 132, audio circuitry 110,speaker 111, RF circuitry 108, and browser module 147, video and musicplayer module 152 includes executable instructions that allow the userto download and play back recorded music and other sound files stored inone or more file formats, such as MP3 or AAC files, and executableinstructions to display, present, or otherwise play back videos (e.g.,on touch screen 112 or on an external, connected display via externalport 124). In some embodiments, device 100 optionally includes thefunctionality of an MP3 player, such as an iPod (trademark of AppleInc.).

In conjunction with touch screen 112, display controller 156,contact/motion module 130, graphics module 132, and text input module134, notes module 153 includes executable instructions to create andmanage notes, to-do lists, and the like in accordance with userinstructions.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, text inputmodule 134, GPS module 135, and browser module 147, map module 154 maybe used to receive, display, modify, and store maps and data associatedwith maps (e.g., driving directions, data on stores and other points ofinterest at or near a particular location, and other location-baseddata) in accordance with user instructions.

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, audio circuitry 110, speaker 111, RFcircuitry 108, text input module 134, e-mail client module 140, andbrowser module 147, online video module 155 includes instructions thatallow the user to access, browse, receive (e.g., by streaming and/ordownload), play back (e.g., on the touch screen or on an external,connected display via external port 124), send an e-mail with a link toa particular online video, and otherwise manage online videos in one ormore file formats, such as H.264. In some embodiments, instant messagingmodule 141, rather than e-mail client module 140, is used to send a linkto a particular online video. Additional description of the online videoapplication can be found in U.S. Provisional Patent Application No.60/936,562, “Portable Multifunction Device, Method, and Graphical UserInterface for Playing Online Videos,” filed Jun. 20, 2007, and U.S.patent application Ser. No. 11/968,067, “Portable Multifunction Device,Method, and Graphical User Interface for Playing Online Videos,” filedDec. 31, 2007, the contents of which are hereby incorporated byreference in their entirety.

Each of the above-identified modules and applications corresponds to aset of executable instructions for performing one or more functionsdescribed above and the methods described in this application (e.g., thecomputer-implemented methods and other information processing methodsdescribed herein). These modules (e.g., sets of instructions) need notbe implemented as separate software programs, procedures, or modules,and thus various subsets of these modules may be combined or otherwiserearranged in various embodiments. For example, video player module maybe combined with music player module into a single module (e.g., videoand music player module 152, FIG. 1A). In some embodiments, memory 102may store a subset of the modules and data structures identified above.Furthermore, memory 102 may store additional modules and data structuresnot described above.

In some embodiments, device 100 is a device where operation of apredefined set of functions on the device is performed exclusivelythrough a touch screen and/or a touchpad. By using a touch screen and/ora touchpad as the primary input control device for operation of device100, the number of physical input control devices (such as push buttons,dials, and the like) on device 100 may be reduced.

The predefined set of functions that are performed exclusively through atouch screen and/or a touchpad optionally include navigation betweenuser interfaces. In some embodiments, the touchpad, when touched by theuser, navigates device 100 to a main, home, or root menu from any userinterface that is displayed on device 100. In such embodiments, a “menubutton” is implemented using a touchpad. In some other embodiments, themenu button is a physical push button or other physical input controldevice instead of a touchpad.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments. In some embodiments,memory 102 (FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g., inoperating system 126) and a respective application 136-1 (e.g., any ofthe aforementioned applications 137-151, 155, 380-390).

Event sorter 170 receives event information and determines theapplication 136-1 and application view 191 of application 136-1 to whichto deliver the event information. Event sorter 170 includes eventmonitor 171 and event dispatcher module 174. In some embodiments,application 136-1 includes application internal state 192, whichindicates the current application view(s) displayed on touch-sensitivedisplay 112 when the application is active or executing. In someembodiments, device/global internal state 157 is used by event sorter170 to determine which application(s) is (are) currently active, andapplication internal state 192 is used by event sorter 170 to determineapplication views 191 to which to deliver event information.

In some embodiments, application internal state 192 includes additionalinformation, such as one or more of: resume information to be used whenapplication 136-1 resumes execution, user interface state informationthat indicates information being displayed or that is ready for displayby application 136-1, a state queue for enabling the user to go back toa prior state or view of application 136-1, and a redo/undo queue ofprevious actions taken by the user.

Event monitor 171 receives event information from peripherals interface118. Event information includes information about a sub-event (e.g., auser touch on touch-sensitive display 112, as part of a multi-touchgesture). Peripherals interface 118 transmits information it receivesfrom I/O subsystem 106 or a sensor, such as proximity sensor 166,accelerometer(s) 168, and/or microphone 113 (through audio circuitry110). Information that peripherals interface 118 receives from I/Osubsystem 106 includes information from touch-sensitive display 112 or atouch-sensitive surface.

In some embodiments, event monitor 171 sends requests to the peripheralsinterface 118 at predetermined intervals. In response, peripheralsinterface 118 transmits event information. In other embodiments,peripherals interface 118 transmits event information only when there isa significant event (e.g., receiving an input above a predeterminednoise threshold and/or for more than a predetermined duration).

In some embodiments, event sorter 170 also includes a hit viewdetermination module 172 and/or an active event recognizer determinationmodule 173.

Hit view determination module 172 provides software procedures fordetermining where a sub-event has taken place within one or more viewswhen touch-sensitive display 112 displays more than one view. Views aremade up of controls and other elements that a user can see on thedisplay.

Another aspect of the user interface associated with an application is aset of views, sometimes herein called application views or userinterface windows, in which information is displayed and touch-basedgestures occur. The application views (of a respective application) inwhich a touch is detected may correspond to programmatic levels within aprogrammatic or view hierarchy of the application. For example, thelowest level view in which a touch is detected may be called the hitview, and the set of events that are recognized as proper inputs may bedetermined based, at least in part, on the hit view of the initial touchthat begins a touch-based gesture.

Hit view determination module 172 receives information related tosub-events of a touch-based gesture. When an application has multipleviews organized in a hierarchy, hit view determination module 172identifies a hit view as the lowest view in the hierarchy which shouldhandle the sub-event. In most circumstances, the hit view is the lowestlevel view in which an initiating sub-event occurs (e.g., the firstsub-event in the sequence of sub-events that form an event or potentialevent). Once the hit view is identified by the hit view determinationmodule 172, the hit view typically receives all sub-events related tothe same touch or input source for which it was identified as the hitview.

Active event recognizer determination module 173 determines which viewor views within a view hierarchy should receive a particular sequence ofsub-events. In some embodiments, active event recognizer determinationmodule 173 determines that only the hit view should receive a particularsequence of sub-events. In other embodiments, active event recognizerdetermination module 173 determines that all views that include thephysical location of a sub-event are actively involved views, andtherefore determines that all actively involved views should receive aparticular sequence of sub-events. In other embodiments, even if touchsub-events were entirely confined to the area associated with oneparticular view, views higher in the hierarchy would still remain asactively involved views.

Event dispatcher module 174 dispatches the event information to an eventrecognizer (e.g., event recognizer 180). In embodiments including activeevent recognizer determination module 173, event dispatcher module 174delivers the event information to an event recognizer determined byactive event recognizer determination module 173. In some embodiments,event dispatcher module 174 stores in an event queue the eventinformation, which is retrieved by a respective event receiver 182.

In some embodiments, operating system 126 includes event sorter 170.Alternatively, application 136-1 includes event sorter 170. In yet otherembodiments, event sorter 170 is a stand-alone module, or a part ofanother module stored in memory 102, such as contact/motion module 130.

In some embodiments, application 136-1 includes a plurality of eventhandlers 190 and one or more application views 191, each of whichincludes instructions for handling touch events that occur within arespective view of the application's user interface. Each applicationview 191 of the application 136-1 includes one or more event recognizers180. Typically, a respective application view 191 includes a pluralityof event recognizers 180. In other embodiments, one or more of eventrecognizers 180 are part of a separate module, such as a user interfacekit (not shown) or a higher level object from which application 136-1inherits methods and other properties. In some embodiments, a respectiveevent handler 190 includes one or more of: data updater 176, objectupdater 177, GUI updater 178, and/or event data 179 received from eventsorter 170. Event handler 190 may utilize or call data updater 176,object updater 177, or GUI updater 178 to update the applicationinternal state 192. Alternatively, one or more of the application views191 include one or more respective event handlers 190. Also, in someembodiments, one or more of data updater 176, object updater 177, andGUI updater 178 are included in a respective application view 191.

A respective event recognizer 180 receives event information (e.g.,event data 179) from event sorter 170 and identifies an event from theevent information. Event recognizer 180 includes event receiver 182 andevent comparator 184. In some embodiments, event recognizer 180 alsoincludes at least a subset of: metadata 183, and event deliveryinstructions 188 (which may include sub-event delivery instructions).

Event receiver 182 receives event information from event sorter 170. Theevent information includes information about a sub-event, for example, atouch or a touch movement. Depending on the sub-event, the eventinformation also includes additional information, such as location ofthe sub-event. When the sub-event concerns motion of a touch, the eventinformation may also include speed and direction of the sub-event. Insome embodiments, events include rotation of the device from oneorientation to another (e.g., from a portrait orientation to a landscapeorientation, or vice versa), and the event information includescorresponding information about the current orientation (also calleddevice attitude) of the device.

Event comparator 184 compares the event information to predefined eventor sub-event definitions and, based on the comparison, determines anevent or sub-event, or determines or updates the state of an event orsub-event. In some embodiments, event comparator 184 includes eventdefinitions 186. Event definitions 186 contain definitions of events(e.g., predefined sequences of sub-events), for example, event 1(187-1), event 2 (187-2), and others. In some embodiments, sub-events inan event (187) include, for example, touch begin, touch end, touchmovement, touch cancellation, and multiple touching. In one example, thedefinition for event 1 (187-1) is a double tap on a displayed object.The double tap, for example, comprises a first touch (touch begin) onthe displayed object for a predetermined phase, a first liftoff (touchend) for a predetermined phase, a second touch (touch begin) on thedisplayed object for a predetermined phase, and a second liftoff (touchend) for a predetermined phase. In another example, the definition forevent 2 (187-2) is a dragging on a displayed object. The dragging, forexample, comprises a touch (or contact) on the displayed object for apredetermined phase, a movement of the touch across touch-sensitivedisplay 112, and liftoff of the touch (touch end). In some embodiments,the event also includes information for one or more associated eventhandlers 190.

In some embodiments, event definition 187 includes a definition of anevent for a respective user-interface object. In some embodiments, eventcomparator 184 performs a hit test to determine which user-interfaceobject is associated with a sub-event. For example, in an applicationview in which three user-interface objects are displayed ontouch-sensitive display 112, when a touch is detected on touch-sensitivedisplay 112, event comparator 184 performs a hit test to determine whichof the three user-interface objects is associated with the touch(sub-event). If each displayed object is associated with a respectiveevent handler 190, the event comparator uses the result of the hit testto determine which event handler 190 should be activated. For example,event comparator 184 selects an event handler associated with thesub-event and the object triggering the hit test.

In some embodiments, the definition for a respective event (187) alsoincludes delayed actions that delay delivery of the event informationuntil after it has been determined whether the sequence of sub-eventsdoes or does not correspond to the event recognizer's event type.

When a respective event recognizer 180 determines that the series ofsub-events do not match any of the events in event definitions 186, therespective event recognizer 180 enters an event impossible, eventfailed, or event ended state, after which it disregards subsequentsub-events of the touch-based gesture. In this situation, other eventrecognizers, if any, that remain active for the hit view continue totrack and process sub-events of an ongoing touch-based gesture.

In some embodiments, a respective event recognizer 180 includes metadata183 with configurable properties, flags, and/or lists that indicate howthe event delivery system should perform sub-event delivery to activelyinvolved event recognizers. In some embodiments, metadata 183 includesconfigurable properties, flags, and/or lists that indicate how eventrecognizers may interact, or are enabled to interact, with one another.In some embodiments, metadata 183 includes configurable properties,flags, and/or lists that indicate whether sub-events are delivered tovarying levels in the view or programmatic hierarchy.

In some embodiments, a respective event recognizer 180 activates eventhandler 190 associated with an event when one or more particularsub-events of an event are recognized. In some embodiments, a respectiveevent recognizer 180 delivers event information associated with theevent to event handler 190. Activating an event handler 190 is distinctfrom sending (and deferred sending) sub-events to a respective hit view.In some embodiments, event recognizer 180 throws a flag associated withthe recognized event, and event handler 190 associated with the flagcatches the flag and performs a predefined process.

In some embodiments, event delivery instructions 188 include sub-eventdelivery instructions that deliver event information about a sub-eventwithout activating an event handler. Instead, the sub-event deliveryinstructions deliver event information to event handlers associated withthe series of sub-events or to actively involved views. Event handlersassociated with the series of sub-events or with actively involved viewsreceive the event information and perform a predetermined process.

In some embodiments, data updater 176 creates and updates data used inapplication 136-1. For example, data updater 176 updates the telephonenumber used in contacts module 137, or stores a video file used in videoplayer module. In some embodiments, object updater 177 creates andupdates objects used in application 136-1. For example, object updater177 creates a new user-interface object or updates the position of auser-interface object. GUI updater 178 updates the GUI. For example, GUIupdater 178 prepares display information and sends it to graphics module132 for display on a touch-sensitive display.

In some embodiments, event handler(s) 190 includes or has access to dataupdater 176, object updater 177, and GUI updater 178. In someembodiments, data updater 176, object updater 177, and GUI updater 178are included in a single module of a respective application 136-1 orapplication view 191. In other embodiments, they are included in two ormore software modules.

It shall be understood that the foregoing discussion regarding eventhandling of user touches on touch-sensitive displays also applies toother forms of user inputs to operate multifunction devices 100 withinput devices, not all of which are initiated on touch screens. Forexample, mouse movement and mouse button presses, optionally coordinatedwith single or multiple keyboard presses or holds; contact movementssuch as taps, drags, scrolls, etc. on touchpads; pen stylus inputs;movement of the device; oral instructions; detected eye movements;biometric inputs; and/or any combination thereof are optionally utilizedas inputs corresponding to sub-events which define an event to berecognized.

FIG. 2 illustrates a portable multifunction device 100 having a touchscreen 112 in accordance with some embodiments. The touch screenoptionally displays one or more graphics within user interface (UI) 200.In this embodiment, as well as others described below, a user is enabledto select one or more of the graphics by making a gesture on thegraphics, for example, with one or more fingers 202 (not drawn to scalein the figure) or one or more styluses 203 (not drawn to scale in thefigure). In some embodiments, selection of one or more graphics occurswhen the user breaks contact with the one or more graphics. In someembodiments, the gesture optionally includes one or more taps, one ormore swipes (from left to right, right to left, upward and/or downward),and/or a rolling of a finger (from right to left, left to right, upwardand/or downward) that has made contact with device 100. In someimplementations or circumstances, inadvertent contact with a graphicdoes not select the graphic. For example, a swipe gesture that sweepsover an application icon optionally does not select the correspondingapplication when the gesture corresponding to selection is a tap.

Device 100 may also include one or more physical buttons, such as “home”or menu button 204. As described previously, menu button 204 may be usedto navigate to any application 136 in a set of applications that may beexecuted on device 100. Alternatively, in some embodiments, the menubutton is implemented as a soft key in a GUI displayed on touch screen112.

In one embodiment, device 100 includes touch screen 112, menu button204, push button 206 for powering the device on/off and locking thedevice, volume adjustment button(s) 208, subscriber identity module(SIM) card slot 210, headset jack 212, and docking/charging externalport 124. Push button 206 is, optionally, used to turn the power on/offon the device by depressing the button and holding the button in thedepressed state for a predefined time interval; to lock the device bydepressing the button and releasing the button before the predefinedtime interval has elapsed; and/or to unlock the device or initiate anunlock process. In an alternative embodiment, device 100 also acceptsverbal input for activation or deactivation of some functions throughmicrophone 113. Device 100 also, optionally, includes one or morecontact intensity sensors 165 for detecting intensity of contacts ontouch screen 112 and/or one or more tactile output generators 167 forgenerating tactile outputs for a user of device 100.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments. Device 300 need not be portable. In some embodiments,device 300 is a laptop computer, a desktop computer, a tablet computer,a multimedia player device, a navigation device, an educational device(such as a child's learning toy), a gaming system, or a control device(e.g., a home or industrial controller). Device 300 typically includesone or more processing units (CPUs) 310, one or more network or othercommunications interfaces 360, memory 370, and one or more communicationbuses 320 for interconnecting these components. Communication buses 320optionally include circuitry (sometimes called a chipset) thatinterconnects and controls communications between system components.Device 300 includes input/output (I/O) interface 330 comprising display340, which is typically a touch screen display. I/O interface 330 alsooptionally includes a keyboard and/or mouse (or other pointing device)350 and touchpad 355, tactile output generator 357 for generatingtactile outputs on device 300 (e.g., similar to tactile outputgenerator(s) 167 described above with reference to FIG. 1A), sensors 359(e.g., optical, acceleration, proximity, touch-sensitive, and/or contactintensity sensors similar to contact intensity sensor(s) 165 describedabove with reference to FIG. 1A). Memory 370 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM, or other random access solidstate memory devices; and optionally includes non-volatile memory, suchas one or more magnetic disk storage devices, optical disk storagedevices, flash memory devices, or other non-volatile solid state storagedevices. Memory 370 optionally includes one or more storage devicesremotely located from CPU(s) 310. In some embodiments, memory 370 storesprograms, modules, and data structures analogous to the programs,modules, and data structures stored in memory 102 of portablemultifunction device 100 (FIG. 1A), or a subset thereof. Furthermore,memory 370 optionally stores additional programs, modules, and datastructures not present in memory 102 of portable multifunction device100. For example, memory 370 of device 300 optionally stores drawingmodule 380, presentation module 382, word processing module 384, websitecreation module 386, disk authoring module 388, and/or spreadsheetmodule 390, while memory 102 of portable multifunction device 100 (FIG.1A) optionally does not store these modules.

Each of the above-identified elements in FIG. 3 may be stored in one ormore of the previously mentioned memory devices. Each of theabove-identified modules corresponds to a set of instructions forperforming a function described above. The above-identified modules orprograms (e.g., sets of instructions) need not be implemented asseparate software programs, procedures, or modules, and thus varioussubsets of these modules may be combined or otherwise rearranged invarious embodiments. In some embodiments, memory 370 may store a subsetof the modules and data structures identified above. Furthermore, memory370 may store additional modules and data structures not describedabove.

Attention is now directed towards embodiments of user interfaces thatmay be implemented on, for example, portable multifunction device 100.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on portable multifunction device 100 in accordance withsome embodiments. Similar user interfaces may be implemented on device300. In some embodiments, user interface 400 includes the followingelements, or a subset or superset thereof:

-   -   Signal strength indicator(s) 402 for wireless communication(s),        such as cellular and Wi-Fi signals;    -   Time 404;    -   Bluetooth indicator 405;    -   Battery status indicator 406;    -   Tray 408 with icons for frequently used applications, such as:        -   Icon 416 for telephone module 138, labeled “Phone,” which            optionally includes an indicator 414 of the number of missed            calls or voicemail messages;        -   Icon 418 for e-mail client module 140, labeled “Mail,” which            optionally includes an indicator 410 of the number of unread            e-mails;        -   Icon 420 for browser module 147, labeled “Browser;” and        -   Icon 422 for video and music player module 152, also            referred to as iPod (trademark of Apple Inc.) module 152,            labeled “iPod;” and    -   Icons for other applications, such as:        -   Icon 424 for IM module 141, labeled “Messages;”        -   Icon 426 for calendar module 148, labeled “Calendar;”        -   Icon 428 for image management module 144, labeled “Photos;”        -   Icon 430 for camera module 143, labeled “Camera;”        -   Icon 432 for online video module 155, labeled “Online            Video;”        -   Icon 434 for stocks widget 149-2, labeled “Stocks;”        -   Icon 436 for map module 154, labeled “Maps;”        -   Icon 438 for weather widget 149-1, labeled “Weather;”        -   Icon 440 for alarm clock widget 149-4, labeled “Clock;”        -   Icon 442 for workout support module 142, labeled “Workout            Support;”        -   Icon 444 for notes module 153, labeled “Notes;” and        -   Icon 446 for a settings application or module, labeled            “Settings,” which provides access to settings for device 100            and its various applications 136.

It should be noted that the icon labels illustrated in FIG. 4A aremerely exemplary. For example, icon 422 for video and music playermodule 152 may optionally be labeled “Music” or “Music Player.” Otherlabels are, optionally, used for various application icons. In someembodiments, a label for a respective application icon includes a nameof an application corresponding to the respective application icon. Insome embodiments, a label for a particular application icon is distinctfrom a name of an application corresponding to the particularapplication icon.

FIG. 4B illustrates an exemplary user interface on a device (e.g.,device 300, FIG. 3) with a touch-sensitive surface 451 (e.g., a tabletor touchpad 355, FIG. 3) that is separate from the display 450 (e.g.,touch screen display 112). Device 300 also, optionally, includes one ormore contact intensity sensors (e.g., one or more of sensors 357) fordetecting intensity of contacts on touch-sensitive surface 451 and/orone or more tactile output generators 359 for generating tactile outputsfor a user of device 300.

Although some of the examples which follow will be given with referenceto inputs on touch screen display 112 (where the touch-sensitive surfaceand the display are combined), in some embodiments, the device detectsinputs on a touch-sensitive surface that is separate from the display,as shown in FIG. 4B. In some embodiments, the touch-sensitive surface(e.g., 451 in FIG. 4B) has a primary axis (e.g., 452 in FIG. 4B) thatcorresponds to a primary axis (e.g., 453 in FIG. 4B) on the display(e.g., 450). In accordance with these embodiments, the device detectscontacts (e.g., 460 and 462 in FIG. 4B) with the touch-sensitive surface451 at locations that correspond to respective locations on the display(e.g., in FIG. 4B, 460 corresponds to 468 and 462 corresponds to 470).In this way, user inputs (e.g., contacts 460 and 462, and movementsthereof) detected by the device on the touch-sensitive surface (e.g.,451 in FIG. 4B) are used by the device to manipulate the user interfaceon the display (e.g., 450 in FIG. 4B) of the multifunction device whenthe touch-sensitive surface is separate from the display. It should beunderstood that similar methods are, optionally, used for other userinterfaces described herein.

Additionally, while the following examples are given primarily withreference to finger inputs (e.g., finger contacts, finger tap gestures,finger swipe gestures), it should be understood that, in someembodiments, one or more of the finger inputs are replaced with inputfrom another input device (e.g., a mouse-based input or stylus input).For example, a swipe gesture is, optionally, replaced with a mouse click(e.g., instead of a contact) followed by movement of the cursor alongthe path of the swipe (e.g., instead of movement of the contact). Asanother example, a tap gesture is, optionally, replaced with a mouseclick while the cursor is located over the location of the tap gesture(e.g., instead of detection of the contact followed by ceasing to detectthe contact). Similarly, when multiple user inputs are simultaneouslydetected, it should be understood that multiple computer mice are,optionally, used simultaneously, or a mouse and finger contacts are,optionally, used simultaneously.

As used here, the term “affordance” refers to a user-interactivegraphical user interface object that may be displayed on the displayscreen of devices 100 and/or 300 (FIGS. 1 and 3). For example, an image(e.g., icon), a button, and text (e.g., hyperlink) may each constitutean affordance.

As used herein, the term “focus selector” refers to an input elementthat indicates a current part of a user interface with which a user isinteracting. In some implementations that include a cursor or otherlocation marker, the cursor acts as a “focus selector” so that when aninput (e.g., a press input) is detected on a touch-sensitive surface(e.g., touchpad 355 in FIG. 3 or touch-sensitive surface 451 in FIG. 4B)while the cursor is over a particular user interface element (e.g., abutton, window, slider or other user interface element), the particularuser interface element is adjusted in accordance with the detectedinput. In some implementations that include a touch screen display(e.g., touch-sensitive display system 112 in FIG. 1A or touch screen 112in FIG. 4A) that enables direct interaction with user interface elementson the touch screen display, a detected contact on the touch screen actsas a “focus selector” so that when an input (e.g., a press input by thecontact) is detected on the touch screen display at a location of aparticular user interface element (e.g., a button, window, slider, orother user interface element), the particular user interface element isadjusted in accordance with the detected input. In some implementations,focus is moved from one region of a user interface to another region ofthe user interface without corresponding movement of a cursor ormovement of a contact on a touch screen display (e.g., by using a tabkey or arrow keys to move focus from one button to another button); inthese implementations, the focus selector moves in accordance withmovement of focus between different regions of the user interface.Without regard to the specific form taken by the focus selector, thefocus selector is generally the user interface element (or contact on atouch screen display) that is controlled by the user so as tocommunicate the user's intended interaction with the user interface(e.g., by indicating, to the device, the element of the user interfacewith which the user is intending to interact). For example, the locationof a focus selector (e.g., a cursor, a contact, or a selection box) overa respective button while a press input is detected on thetouch-sensitive surface (e.g., a touchpad or touch screen) will indicatethat the user is intending to activate the respective button (as opposedto other user interface elements shown on a display of the device).

As used in the specification and claims, the term “characteristicintensity” of a contact refers to a characteristic of the contact basedon one or more intensities of the contact. In some embodiments, thecharacteristic intensity is based on multiple intensity samples. Thecharacteristic intensity is, optionally, based on a predefined number ofintensity samples, or a set of intensity samples collected during apredetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10seconds) relative to a predefined event (e.g., after detecting thecontact, prior to detecting liftoff of the contact, before or afterdetecting a start of movement of the contact, prior to detecting an endof the contact, before or after detecting an increase in intensity ofthe contact, and/or before or after detecting a decrease in intensity ofthe contact). A characteristic intensity of a contact is, optionallybased on one or more of: a maximum value of the intensities of thecontact, a mean value of the intensities of the contact, an averagevalue of the intensities of the contact, a top 10 percentile value ofthe intensities of the contact, a value at the half maximum of theintensities of the contact, a value at the 90 percent maximum of theintensities of the contact, or the like. In some embodiments, theduration of the contact is used in determining the characteristicintensity (e.g., when the characteristic intensity is an average of theintensity of the contact over time). In some embodiments, thecharacteristic intensity is compared to a set of one or more intensitythresholds to determine whether an operation has been performed by auser. For example, the set of one or more intensity thresholds mayinclude a first intensity threshold and a second intensity threshold. Inthis example, a contact with a characteristic intensity that does notexceed the first threshold results in a first operation, a contact witha characteristic intensity that exceeds the first intensity thresholdand does not exceed the second intensity threshold results in a secondoperation, and a contact with a characteristic intensity that exceedsthe second threshold results in a third operation. In some embodiments,a comparison between the characteristic intensity and one or morethresholds is used to determine whether or not to perform one or moreoperations (e.g., whether to perform a respective operation or forgoperforming the respective operation) rather than being used to determinewhether to perform a first operation or a second operation.

In some embodiments, a portion of a gesture is identified for purposesof determining a characteristic intensity. For example, atouch-sensitive surface may receive a continuous swipe contacttransitioning from a start location and reaching an end location, atwhich point the intensity of the contact increases. In this example, thecharacteristic intensity of the contact at the end location may be basedon only a portion of the continuous swipe contact, and not the entireswipe contact (e.g., only the portion of the swipe contact at the endlocation). In some embodiments, a smoothing algorithm may be applied tothe intensities of the swipe contact prior to determining thecharacteristic intensity of the contact. For example, the smoothingalgorithm optionally includes one or more of: an unweightedsliding-average smoothing algorithm, a triangular smoothing algorithm, amedian filter smoothing algorithm, and/or an exponential smoothingalgorithm. In some circumstances, these smoothing algorithms eliminatenarrow spikes or dips in the intensities of the swipe contact forpurposes of determining a characteristic intensity.

The intensity of a contact on the touch-sensitive surface may becharacterized relative to one or more intensity thresholds, such as acontact-detection intensity threshold, a light press intensitythreshold, a deep press intensity threshold, and/or one or more otherintensity thresholds. In some embodiments, the light press intensitythreshold corresponds to an intensity at which the device will performoperations typically associated with clicking a button of a physicalmouse or a trackpad. In some embodiments, the deep press intensitythreshold corresponds to an intensity at which the device will performoperations that are different from operations typically associated withclicking a button of a physical mouse or a trackpad. In someembodiments, when a contact is detected with a characteristic intensitybelow the light press intensity threshold (e.g., and above a nominalcontact-detection intensity threshold below which the contact is nolonger detected), the device will move a focus selector in accordancewith movement of the contact on the touch-sensitive surface withoutperforming an operation associated with the light press intensitythreshold or the deep press intensity threshold. Generally, unlessotherwise stated, these intensity thresholds are consistent betweendifferent sets of user interface figures.

An increase of characteristic intensity of the contact from an intensitybelow the light press intensity threshold to an intensity between thelight press intensity threshold and the deep press intensity thresholdis sometimes referred to as a “light press” input. An increase ofcharacteristic intensity of the contact from an intensity below the deeppress intensity threshold to an intensity above the deep press intensitythreshold is sometimes referred to as a “deep press” input. An increaseof characteristic intensity of the contact from an intensity below thecontact-detection intensity threshold to an intensity between thecontact-detection intensity threshold and the light press intensitythreshold is sometimes referred to as detecting the contact on thetouch-surface. A decrease of characteristic intensity of the contactfrom an intensity above the contact-detection intensity threshold to anintensity below the contact-detection intensity threshold is sometimesreferred to as detecting liftoff of the contact from the touch-surface.In some embodiments the contact-detection intensity threshold is zero.In some embodiments, the contact-detection intensity threshold isgreater than zero.

In some embodiments described herein, one or more operations areperformed in response to detecting a gesture that includes a respectivepress input or in response to detecting the respective press inputperformed with a respective contact (or a plurality of contacts), wherethe respective press input is detected based at least in part ondetecting an increase in intensity of the contact (or plurality ofcontacts) above a press-input intensity threshold. In some embodiments,the respective operation is performed in response to detecting theincrease in intensity of the respective contact above the press-inputintensity threshold (e.g., a “down stroke” of the respective pressinput). In some embodiments, the press input includes an increase inintensity of the respective contact above the press-input intensitythreshold and a subsequent decrease in intensity of the contact belowthe press-input intensity threshold, and the respective operation isperformed in response to detecting the subsequent decrease in intensityof the respective contact below the press-input threshold (e.g., an “upstroke” of the respective press input).

In some embodiments, the device employs intensity hysteresis to avoidaccidental inputs sometimes termed “jitter,” where the device defines orselects a hysteresis intensity threshold with a predefined relationshipto the press-input intensity threshold (e.g., the hysteresis intensitythreshold is X intensity units lower than the press-input intensitythreshold or the hysteresis intensity threshold is 75%, 90%, or somereasonable proportion of the press-input intensity threshold). Thus, insome embodiments, the press input includes an increase in intensity ofthe respective contact above the press-input intensity threshold and asubsequent decrease in intensity of the contact below the hysteresisintensity threshold that corresponds to the press-input intensitythreshold, and the respective operation is performed in response todetecting the subsequent decrease in intensity of the respective contactbelow the hysteresis intensity threshold (e.g., an “up stroke” of therespective press input). Similarly, in some embodiments, the press inputis detected only when the device detects an increase in intensity of thecontact from an intensity at or below the hysteresis intensity thresholdto an intensity at or above the press-input intensity threshold and,optionally, a subsequent decrease in intensity of the contact to anintensity at or below the hysteresis intensity, and the respectiveoperation is performed in response to detecting the press input (e.g.,the increase in intensity of the contact or the decrease in intensity ofthe contact, depending on the circumstances).

For ease of explanation, the descriptions of operations performed inresponse to a press input associated with a press-input intensitythreshold or in response to a gesture including the press input are,optionally, triggered in response to detecting either: an increase inintensity of a contact above the press-input intensity threshold, anincrease in intensity of a contact from an intensity below thehysteresis intensity threshold to an intensity above the press-inputintensity threshold, a decrease in intensity of the contact below thepress-input intensity threshold, and/or a decrease in intensity of thecontact below the hysteresis intensity threshold corresponding to thepress-input intensity threshold. Additionally, in examples where anoperation is described as being performed in response to detecting adecrease in intensity of a contact below the press-input intensitythreshold, the operation is, optionally, performed in response todetecting a decrease in intensity of the contact below a hysteresisintensity threshold corresponding to, and lower than, the press-inputintensity threshold.

Attention is now directed towards embodiments of user interfaces (“UI”)and associated processes that may be implemented on a multifunctiondevice with a display, such as device 300 or portable multifunctiondevice 100.

FIGS. 5A-5M illustrate exemplary user interfaces for displaying searchresult information in accordance with some embodiments. The userinterfaces in these figures are used to illustrate the processesdescribed below, including the process in FIGS. 6A-6B.

FIGS. 5A-D illustrate exemplary user interfaces for receiving a searchinput and displaying search result information. At FIG. 5A, electronicdevice 100 displays a user interface, including search field 502. A userof the device can enter a search input, such as an alphanumeric textstring, into search field 502 to initiate a search. In some examples,the user does not need to indicate completion of entering the searchinput, such as by activating a search affordance or pressing an enterbutton, to initiate the search. Instead, the device may automaticallyrequests searches as the search input is progressively entered intosearch field 502.

At FIG. 5B, the user has entered a search input 504 of “Coff” intosearch field 502. The device receives the search input 504 (e.g., “C”,“Cof”, and “Coff” as it is progressively entered). The device obtainsone or more local search results based on the search input. The devicedetermines whether the search input 504 (e.g., “Coff” in FIG. 5B) meetsremote-search criteria. In some embodiments, the search input does notmeet the remote-search criteria when the search input has a charactercount that does not exceed a threshold character count. For example, theremote-search criteria is met when the length of the search input 504 isabove a predefined number of characters. In response to receiving thesearch input, and in accordance with a determination that the searchinput does not meet the remote-search criteria (e.g., a length of thesearch input is not above the predefined number of characters), thedevice displays, on the display, local search result information (e.g.,messages 506 and 508 of FIG. 5B) that corresponds to the one or morelocal search results, as illustrated in FIG. 5B. In some examples, localsearch result information pertains to information that is locally storedon the device. Thus, the device does not have to access a remotelocation (such as a server) to access the information. Thus, FIG. 5Billustrates an example where the search input 504 of “Coff” does notmeet the remote-search criteria.

FIG. 5C illustrates an exemplary user interface where the search input504 of “Coffee” does meet the remote-search criteria. In response toreceiving the search input 504 (e.g., “Coffee” of FIG. 5C), and inaccordance with a determination that the search input 504 (e.g.,“Coffee” in FIG. 5C) meets the remote-search criteria (e.g., a length ofthe search input is above a predefined number of characters), the deviceobtains one or more remote search results based on the search input andconcurrently displays, on the display, remote search result information(e.g., Donut Shoppe search result 510) that corresponds to the one ormore remote search results and local search result information (e.g.,messages 506 and 508 of FIG. 5C) that corresponds to the one or morelocal search results. In some examples, remote search result informationpertains to information that is remotely stored (e.g., the device uses anetwork to access the information).

In some embodiments, the concurrently displayed remote search resultinformation and local search result information are visibly displayedtogether on the display. For example, some of the remote search resultsand some of the local search results are displayed on the same screen.This makes the user aware that local search results are available whenthe user initially looks at the screen (and prior to any scrolling),even when remote search results are displayed at, for example, the topof the display. This is advantageous because local search results areoften relevant to the user.

In some embodiments, the displayed remote search result information(e.g., search result 510 of FIG. 5C) comprises a remote search result ofthe one or more remote search results, the remote search result having aconfidence value higher than a confidence threshold. For example, eachof the one or more remote search results are assigned a correspondingconfidence value. If the top remote search result (e.g., the remotesearch result with the highest confidence value) is determined not to berelevant to the user (e.g., the confidence value is not higher than theconfidence threshold), then the remote search result is not displayed tothe user. In some embodiments, this determination is performed at aremote server that provides the one or more remote search results. Insome embodiments, the determination is performed at the device.

In some embodiments, the displayed remote search result information(e.g., search result 510 of FIG. 5C) comprises one or more top remotesearch results up to a threshold number of top remote search results(e.g., maximum one remote result so that the user is not inundated withremote results) that have a corresponding confidence value that exceedsa confidence threshold. Thus, even if numerous remote search resultshave confidence values that exceed the confidence threshold, the numberof remote search results displayed is limited so that the user is moreeasily able to view and access local results.

In some embodiments, prior to displaying the remote search resultinformation, the device determines whether an identified remote searchresult of the one or more remote search results corresponds to amatching local search result of the one or more local search results. Inaccordance with a determination that the identified remote search resultcorresponds to the matching local search result, the device excludes theidentified remote search result from the remote search resultinformation prior to displaying the remote search result information.For example, in some embodiments, the device does not display a link tobuy a music album (the identified remote search result), if the devicedetermines that the device already has access to the music album (e.g.,the music album is stored locally). Instead of the link to buy the musicalbum, the device provides a link to locally access the music album onthe device.

FIG. 5D illustrates an exemplary user interface for displaying localsearch result information and remote search result information inaccordance with some embodiments. In some embodiments, concurrentlydisplaying the remote search result information and the local searchresult information comprises displaying a first remote search result(e.g., search result 510 of FIG. 5D) of the one or more remote searchresults at a first location on the display. The device displays aplurality of local search results (e.g., messages 506 and 508 of FIG.5D) of the one or more local search results at a second location on thedisplay, the second location being below the first location. The devicedisplays a second remote search result (e.g., search results 512 of FIG.5D) of the one or more remote search results at a third location on thedisplay, the third location being below the second location. In someembodiments, a remote search result is displayed at the top of the listof search results. This remote search result is followed by multipledisplayed local search results, which are followed by another one ormore remote search results. In this way, a user can quickly access thehighest ranked remote search result and also have convenient access tolocal search results. While still accessible, the remote results otherthan the remote result displayed at the top of the list, are displayedat a location that is potentially less accessible to the user. Forexample, the user may need to scroll the screen to access the otherremote results.

In some embodiments, the device receives additional characters added tothe search input (e.g., the user enters more into the search field) andupdates the search results. The device receives additional charactersadded to the search input to form a second search input. The deviceobtains one or more second local search results based on the secondsearch input. The device determines whether the second search inputmeets the remote-search criteria. In accordance with a determinationthat the second search input does not meet the remote-search criteria(e.g., a length of the second search input is not above the predefinednumber of characters), the device displays, on the display, updatedlocal search result information that corresponds to the one or moresecond local search results. In accordance with a determination that thesecond search input meets the remote-search criteria, the device obtainsone or more second remote search results based on the second searchinput, and concurrently displays, on the display, updated remote searchresult information that corresponds to the one or more second remotesearch results and updated local search result information thatcorresponds to the one or more second local search results. In somecircumstances, the second search input meets the remote-search criteriawhile the first search input did not meet the remote-search criteria.For example, the first search input may not meet the remote-searchcriteria because the first search input has a character count that doesnot exceed a threshold character count. As the user enters an additionalcharacter into the search field, the newly formed search input (e.g.,second search input) may meet the remote-search criteria. For example,this second search input may meet the remote-search criteria because itexceeds the threshold character count.

FIGS. 5E-5F illustrate exemplary user interfaces for displayingsupplemental information as part of the remote search result informationin accordance with some embodiments. In some embodiments, the displayedremote search result information comprises a first remote search result(e.g., Donut Shoppe search result 510 of FIG. 5E) associated with arespective software application (e.g., a software application that isdifferent from an application in which the search is being performed;the software application may be a restaurant review application). Thedevice obtains supplemental information (e.g., the distance to arestaurant “5 Miles”, restaurant hours “6:00 AM-5:00 PM”) related to thefirst remote search result from the respective software application. Insome examples, the respective software application accesses thesupplemental information over the Internet. The device displays thesupplemental information as part of the remote search resultinformation. The device receives a selection of (e.g., a user taps on)the first remote search result, and, in response to receiving theselection of the first remote search result, the device displays therespective software application (e.g., a restaurant review application).

In some embodiments, the displayed local search result informationcomprises a first local search result (e.g., message 508 of FIG. 5E)associated with a respective software application (e.g., mailapplication 514 of FIG. 5F). The device obtains supplemental information(e.g., the subject or body of the email) related to the first localsearch result from the respective software application (e.g., mailapplication 514). The device displays the supplemental information aspart of the local search result information. In some examples, thesupplemental information displayed as part of the local search resultinformation is stored locally on the device (e.g., the email waspreviously downloaded onto the device). The device receives a selectionof (e.g., a user taps on) the first local search result (e.g., message508 of FIG. 5E), and, in response to receiving the selection of thefirst local search result, the device displays the respective softwareapplication (e.g., mail application 514 of FIG. 5F). Thus, for example,an email application may retrieve the subject or body of an email anddisplay the subject or body of the email as part of a displayed emailresult. When the user selects the email result, the email applicationopens and displays the email.

In some embodiments, the displayed remote search result informationcomprises a remote search result (e.g., search result 510 of FIG. 5E)and information accessed from a remote source (e.g., a website server)associated with the remote search result (e.g., information accessedfrom a server such as location or business hours). In some embodiments,the displayed local search result information comprises a local searchresult (e.g., message 508 of FIG. 5E) and information accessed from alocal source (e.g., application on phone, email application on phone)associated with the local search result (e.g., the subject or content ofthe message). By including information accessed from the remote sourceand the local source in the remote search result and local searchresult, respectively, the user is presented with additional information,thereby reducing the need for the user to select the search result toaccess the full content or application associated with the searchresult.

FIGS. 5G-5I illustrate exemplary user interfaces for displaying variousparts of a remote search result in accordance with some embodiments. Inthese examples, a user has entered a search input of “Her Movie” (e.g.,search input 520) and the device has displayed remote search resultinformation. In some embodiments, the displayed remote search resultinformation comprises a first remote search result. The device detects aswipe gesture (e.g., by the user swiping a finger, as illustrated inFIG. 5G) on a touch-sensitive surface at a location that corresponds toa location of a first portion of the first remote search result on thedisplay (e.g., first portion 522A). In response to detecting the swipegesture at the first portion of the first remote search result (e.g.,first portion 522A), the device replaces display of the first portion ofthe first remote search result (e.g., first portion 522A) with displayof a second portion of the first remote search result (e.g., 522B ofFIG. 5I). In some embodiments, the first portion of the first remotesearch result (e.g., first portion 522A) is replaced with the secondportion of the first remote search result (e.g., 522B of FIG. 5I) bysliding the two portions across the display in the direction of theswipe gesture, as illustrated in the transitions between FIG. 5G, FIG.5H, and FIG. 5I. In this example, the first portion allows the user tosee basic details about the movie “Her”, as well as providing an optionto watch a trailer for the movie. After the swipe gesture, in FIG. 5I,the device displays show times for the movie “Her”, as well as providingan option to access a show time for booking a ticket to watch the movie.In another embodiment, in response to detecting a swipe gesture whilemovie details from a movie details application are displaying, thedevice displays a link to make a movie reservation using a moviereservation application. In some embodiments, in response to detecting aswipe gesture while restaurant reviews from a restaurant reviewapplication are displayed, the device displays a link to makereservations using a restaurant reservation application.

FIGS. 5J-N illustrate exemplary user interfaces for receiving a searchinput and displaying search result information in accordance with someembodiments. At FIG. 5J, device 100 displays a user interface, includingsearch field 530. In this example, a user of the device has entered asearch input 532, such as an alphanumeric text string “Malon”, intosearch field 530 to initiate a search. In some examples, the user doesnot need to indicate completion of entering the search input, such as byactivating a search affordance or pressing an enter button, to initiatethe search. Instead, the device may automatically request a search usingthe search input as the search input is progressively entered intosearch field 530.

The device receives the search input 532 (e.g., as it is progressivelyentered). The device obtains one or more local search results based onthe search input. The device determines whether the search input 532(e.g., “Malon” in FIG. 5J) meets remote-search criteria. In someembodiments, the search input does not meet the remote-search criteriawhen the search input has a character count that does not exceed athreshold character count. For example, remote-search criteria is metwhen the length of the search input 532 is above a predefined number ofcharacters. In response to receiving the search input, and in accordancewith a determination that the search input does not meet theremote-search criteria (e.g., a length of the search input is not abovethe predefined number of characters), the device displays, on thedisplay, local search result information (e.g., mail messages 534 and536) that corresponds to the one or more local search results, asillustrated in FIG. 5J. Thus, FIG. 5J illustrates an example where thesearch input 532 of “Malon” does not meet remote-search criteria.However, relevant local results are still displayed. Search result 534is selected by the user (e.g., by clicking the search result using amouse cursor) on the left pane of the search application, and inresponse, a preview 538 of the content associated with search result 534is displayed on the right pane of the search application. In thisexample, the preview 538 includes portions of the contents of a mailmessage that relates to the search input 532.

FIG. 5K illustrates an exemplary user interface where the search input532 of “Malonee” does meet the remote-search criteria. In response toreceiving the search input 532 (e.g., “Malonee” of FIG. 5K), and inaccordance with a determination that the search input 532 (e.g.,“Malonee” of FIG. 5K) meets the remote-search criteria (e.g., a lengthof the search input is above a predefined number of characters), thedevice obtains one or more remote search results based on the searchinput and concurrently displays, on the display, remote search resultinformation (e.g., 540, 542, 544) that corresponds to the one or moreremote search results and local search result information (e.g., mailmessages 534 and 536) that correspond to the one or more local searchresults. In some embodiments, search result 540 is automaticallyselected (e.g., because it is the highest ranked result) on the leftpane of the search application, and in response to being automaticallyselected, a preview 546 of the content associated with search result 540is displayed on the right pane of the search application. In thisexample, the preview 546 includes portions of the contents of anEncyclopedia article that relates to the search term 532.

In some embodiments, the concurrently displayed remote search resultinformation and local search result information are visibly displayedtogether on the display. For example, some of the remote search resultsand some of the local search results are displayed on the same screen.This makes the user aware that local search results are available whenthe user initially looks at the screen (and prior to any scrolling),even when remote search results are displayed at, for example, the topof search window application.

In some embodiments, the displayed remote search result information(e.g., Top Hit search result 540, Smart Search search results 542 and544) comprises a remote search result of the one or more remote searchresults, the remote search result having a confidence value higher thana confidence threshold. For example, each of the one or more remotesearch results are assigned a corresponding confidence value. If the topsearch result (e.g., the remote search result with the highestconfidence value) is determined not to be relevant to the user (e.g.,confidence value is not higher than the confidence threshold), then thesearch result is not displayed to the user. In some embodiments, thisdetermination is performed at a remote server that provides the one ormore remote search results. In some embodiments, the determination isperformed at the device. In FIG. 5K, Top Hit search result 540 has acorresponding confidence value higher than a confidence threshold, andis therefore displayed as part of the displayed remote search resultinformation.

In some embodiments, the displayed remote search result information(e.g., Top Hit search result 540, Smart Search search results 542 and544) comprises one or more top remote search results up to a thresholdnumber of top remote search results (e.g., maximum three remote resultsso that the user is not inundated with remote results) that have acorresponding confidence value that exceeds a confidence threshold.Thus, even if numerous remote results have confidence values that exceedthe confidence threshold, the number of remote results displayed islimited so that the user is more easily able to view and access localresults. In FIG. 5K, the threshold number of top remote search resultsis three. Thus, even though a search for search input 532 returns morethan three remote search results, only a maximum of three remote searchresults are displayed. In other examples, the threshold number of topremote search results determines how many remote search results aredisplayed at the top of the list of search results.

In some embodiments, prior to displaying the remote search resultinformation, the device determines whether an identified remote searchresult of the one or more remote search results corresponds to amatching local search result of the one or more local search results. Inaccordance with a determination that the identified remote search resultcorresponds to the matching local search result, the device excludes theidentified remote search result from the remote search resultinformation prior to displaying the remote search result information.For example, in some embodiments, the device does not display a link tobuy a video documentary (the identified remote search result), if thedevice determines that the device already has access to the videodocumentary (e.g., the video documentary is stored locally). Instead ofthe link to buy the video documentary, the device provides a link tolocally access the video documentary on the device.

FIG. 5K also illustrates an exemplary user interface for displayinglocal search result information and remote search result informationaccording to some embodiments. In some embodiments, concurrentlydisplaying the remote search result information and the local searchresult information comprises displaying a first remote search result(e.g., Top Hit search result 540 of FIG. 5K) of the one or more remotesearch results at a first location on the display, displaying aplurality of local search results (e.g., Mail messages 534 and 536 ofFIG. 5K) of the one or more local search results at a second location onthe display, the second location being below the first location, anddisplaying a second remote search result (e.g., Smart Search searchresult 542 of FIG. 5K) of the one or more remote search results at athird location on the display, the third location being below the secondlocation. In some embodiments, a remote search result is displayed atthe top of the list of search results. This remote search result isfollowed by multiple displayed local search results, which are followedby another one or more remote search results. In this way, a user canquickly access the highest ranked remote search result and also haveconvenient access to local search results. While still accessible, theremote results other than the remote result displayed at the top of thelist, are displayed at a location that is potentially less accessible tothe user. For example, the user may need to scroll the screen to accessthe other remote results.

In some embodiments, the device receives additional characters added tothe search input and updates the search results as the characters areadded. The device receives additional characters added to the searchinput to form a second search input. The device obtains one or moresecond local search results based on the second search input. The devicedetermines whether the second search input meets the remote-searchcriteria. In accordance with a determination that the second searchinput does not meet the remote-search criteria (e.g., a length of thesecond search input is not above the predefined number of characters),the device displays, on the display, updated local search resultinformation that corresponds to the one or more second local searchresults. In accordance with a determination that the second search inputmeets the remote-search criteria, the device obtains one or more secondremote search results based on the second search input, and concurrentlydisplays, on the display, updated remote search result information thatcorresponds to the one or more second remote search results and updatedlocal search result information that corresponds to the one or moresecond local search results. In some circumstances, the second searchinput meets the remote-search criteria while the first search input didnot meet the remote-search criteria. For example, the first search inputmay not meet the remote-search criteria because the first search inputhas a character count that does not exceed a threshold character count.As the user enters an additional character into the search field, thenewly formed search input (e.g., second search input) may meet theremote-search criteria. For example, this second search input may meetthe remote-search criteria because it exceeds the threshold charactercount.

FIGS. 5K-5M illustrate exemplary user interfaces for receivingselections of search results on the left pane of a search applicationand displaying a preview of the selected search result on the right paneof the search application. For example, at FIG. 5K search result 540 isselected (as indicated by being bold), and a preview of the searchresult is displayed (e.g., 546 of FIG. 5K). In FIG. 5L, a user hasselected mail messages 534, and a preview of mail messages 534 isdisplayed (e.g., 548 of FIG. 5L) in the right pane of the searchapplication. In FIG. 5M, a user has selected search result 542, and apreview of the search result is displayed (e.g., 550 of FIG. 5M).

FIGS. 6A-6B are flow diagrams illustrating a method for displayingsearch result information in accordance with some embodiments. Method600 is performed at a device (e.g., device 300, FIG. 3, or portablemultifunction device 100, FIG. 1) with a display. Some operations inmethod 600 may be combined, the order of some operations may be changed,and some operations may be omitted.

As described below, method 600 provides an intuitive way to displaysearch result information in accordance with some embodiments. Themethod reduces the cognitive burden on a user when searching, therebycreating a more efficient human-machine interface. For battery-operatedcomputing devices, enabling a user to conduct a search faster and moreefficiently conserves power and increases the time between batterycharges.

At block 602, the device receives a search input (e.g., search input 504of FIG. 5B, search input 532 of FIG. 5J). At block 604, the deviceobtains one or more local search results based on the search input. Atblock 606, the device determines whether the search input (e.g., searchinput 504 of FIG. 5B, search input 532 of FIG. 5J) meets remote-searchcriteria. In some embodiments, the search input does not meet theremote-search criteria when the search input has a character count thatdoes not exceed a threshold character count. For example, remote-searchcriteria is met when the length of the search input is above apredefined number of characters.

At block 608, in response to receiving the search input the deviceperforms one or more operations. At block 610, in accordance with adetermination that the search input does not meet the remote-searchcriteria (e.g., a length of the search input is not above the predefinednumber of characters), the device displays, on the display, local searchresult information (e.g., messages 506 and 508 of FIG. 5B, mail messages534 and 536 of FIG. 5J) that corresponds to the one or more local searchresults.

At block 612, in response to receiving the search input, and inaccordance with a determination that the search input (e.g., searchinput 504 of FIG. 5C, search input 532 of FIG. 5K) meets theremote-search criteria (e.g., a length of the search input is above apredefined number of characters), the device obtains one or more remotesearch results based on the search input and concurrently displays, onthe display, remote search result information (e.g., search result 510of FIG. 5C, search results 540, 542, 544 of FIG. 5K) that corresponds tothe one or more remote search results and local search resultinformation (e.g., messages 506 and 508 of FIG. 5C, mail messages 534and 536 of FIG. 5K) that corresponds to the one or more local searchresults.

In some embodiments, the concurrently displayed remote search resultinformation and local search result information are visibly displayedtogether on the display. For example, some of the remote search resultsand some of the local search results are displayed on the same screen.This makes the user aware that local search results are available whenthe user initially looks at the screen (and prior to any scrolling),even when remote search results are displayed at, for example, the topof the display.

In some embodiments, the displayed remote search result information(e.g., search result 510 of FIG. 5C, search results 540, 542, and 544 ofFIG. 5K) comprises a remote search result of the one or more remotesearch results, the remote search result having a confidence valuehigher than a confidence threshold. For example, each of the one or moreremote search results are assigned a corresponding confidence value. Ifthe top search result (e.g., the remote search result with the highestconfidence value) is determined not to be relevant to the user (e.g.,confidence value is not higher than the confidence threshold), then thesearch result is not displayed to the user. In some embodiments, thisdetermination is performed at a remote server that provides the one ormore remote search results. In some embodiments, the determination isperformed at the device.

In some embodiments, the displayed remote search result information(e.g., search result 510 of FIG. 5C, search results 540, 542, and 544 ofFIG. 5K) comprises one or more top remote search results up to athreshold number of top remote search results (e.g., maximum one remoteresult so that the user is not inundated with remote results) that havea corresponding confidence value that exceeds a confidence threshold.Thus, even if numerous remote results have confidence values that exceedthe confidence threshold, the number of remote results displayed islimited so that the user is more easily able to view and access localresults. In some embodiments, the threshold number of top remote searchresults limits the number of remote search results displayed at the topof the displayed search results (e.g., above the initial displayed localsearch result).

In some embodiments, prior to displaying the remote search resultinformation, the device determines whether an identified remote searchresult of the one or more remote search results corresponds to amatching local search result of the one or more local search results. Inaccordance with a determination that the identified remote search resultcorresponds to the matching local search result, the device excludes theidentified remote search result from the remote search resultinformation prior to displaying the remote search result information.For example, in some embodiments, the device does not display a link tobuy an album (the identified remote search result), if the devicedetermines that the device already has access to the album (e.g., thealbum is stored locally). Instead of the link to buy the album, thedevice provides a link to locally access the album on the device.

At block 614, in some embodiments, concurrently displaying the remotesearch result information and the local search result informationcomprises displaying a first remote search result of the one or moreremote search results (e.g., 510 of FIG. 5D, 540 of FIG. 5K) at a firstlocation on the display, displaying a plurality of local search results(e.g., messages 506 and 508 of FIG. 5D, mail messages 534, 536 of FIG.5K) of the one or more local search results at a second location on thedisplay, the second location being below the first location, anddisplaying a second remote search result (e.g., search results 512 ofFIG. 5D, search results 542 and 544 of FIG. 5K) of the one or moreremote search results at a third location on the display, the thirdlocation being below the second location. In some embodiments, a remotesearch result is displayed at the top of the list of search results.This remote search result is followed by multiple displayed local searchresults, which are followed by another one or more remote searchresults. In this way, a user can quickly access the highest rankedremote search result and also have convenient access to local searchresults. While still accessible, the remote results other than theremote result displayed at the top of the list, are displayed at alocation that is potentially less accessible to the user. For example,the user may need to scroll the screen to access the other remoteresults.

At block 616, in some embodiments, the device receives additionalcharacters added to the search input and updates the search results. Thedevice receives additional characters added to the search input to forma second search input. The device obtains one or more second localsearch results based on the second search input. The device determineswhether the second search input meets the remote-search criteria. Inaccordance with a determination that the second search input does notmeet the remote-search criteria (e.g., a length of the second searchinput is not above the predefined number of characters), the devicedisplays, on the display, updated local search result information thatcorresponds to the one or more second local search results. Inaccordance with a determination that the second search input meets theremote-search criteria, the device obtains one or more second remotesearch results based on the second search input, and concurrentlydisplays, on the display, updated remote search result information thatcorresponds to the one or more second remote search results and updatedlocal search result information that corresponds to the one or moresecond local search results. In some circumstances, the second searchinput meets the remote-search criteria while the first search input didnot meet the remote-search criteria. For example, the first search inputmay not meet the remote-search criteria because the first search inputhas a character count that does not exceed a threshold character count.As the user enters an additional character into the search field, thenewly formed search input (e.g., second search input) may meet theremote-search criteria. For example, this second search input may meetthe remote-search criteria because it exceeds the threshold charactercount.

In some embodiments, the displayed remote search result informationcomprises a first remote search result (e.g., search result 510 of FIG.5D) associated with a respective software application (e.g., a softwareapplication that is different from an application in which the search isbeing performed, such as a restaurant review application). The deviceobtains supplemental information related to the first remote searchresult from the respective software application. The device displays thesupplemental information as part of the remote search resultinformation. The device receives a selection of (e.g., a user taps on)the first remote search result, and, in response to receiving theselection of the first remote search result, the device displays therespective software application (e.g., a restaurant review application).This allows the user to access more information about a search result byselecting the search result. The respective software application that isdisplayed may include additional details about the search result.

In some embodiments, the displayed local search result informationcomprises a first local search result (e.g., message 508 of FIG. 5E)associated with a respective software application (e.g., mailapplication 514 of FIG. 5F). The device obtains supplemental information(e.g., the subject or body of the email message) related to the firstlocal search result from the respective software application (e.g., mailapplication 514). The device displays the supplemental information aspart of the local search result information. The device receives aselection of (e.g., a user taps on) the first local search result, and,in response to receiving the selection of the first local search result,the device displays the respective software application (e.g., mailapplication 514 of FIG. 5F). Thus, for example, an email application mayretrieve the subject or body of an email and display the subject or bodyof the email as part of a displayed email result. When the user selectsthe email result, the email application opens and displays the email sothat the user can access more details about the email.

In some embodiments, the displayed remote search result informationcomprises a remote search result (e.g., search result 510 of FIG. 5E)and information accessed from a remote source (e.g., a website server)associated with the remote search result (e.g., information accessedfrom a website, distance, business hours), and wherein the displayedlocal search result information comprises a local search result (e.g.,message 508 of FIG. 5E) and information accessed from a local source(e.g., application on phone, email application on phone) associated withthe local search result (e.g., the subject or content of the message).By including information accessed from the remote source and the localsource in the remote search result and local search result,respectively, the user is presented with additional information, therebyreducing the need for the user to select the search result to access thefull content or application associated with the search result.

At block 618, in some embodiments, the displayed remote search resultinformation comprises a first remote search result. The device detects aswipe gesture on a touch-sensitive surface at a location thatcorresponds to a location of a first portion of the first remote searchresult on the display (e.g., 522A of FIG. 5G). In response to detectingthe swipe gesture at the first portion of the first remote search result(e.g., 522A of FIG. 5G), the device replaces display of the firstportion of the first remote search result (e.g., 522A of FIG. 5G) withdisplay of a second portion of the first remote search result (e.g.,second portion 522B of FIG. 5I). In some embodiments, the first portionof the first remote search result (e.g., first portion 522A) is replacedwith the second portion of the first remote search result (e.g., 522B ofFIG. 5I) by sliding the two portions across the display in the directionof the swipe gesture. In some embodiments, in response to detecting aswipe gesture while movie details from a movie details application aredisplaying, the device displays a link to make a movie reservation usinga movie reservation application. In some embodiments, in response todetecting a swipe gesture while restaurant reviews from a restaurantreview application are displayed, the device displays a link to makereservations using a restaurant reservation application.

Note that details of the processes described above with respect tomethod 600 (e.g., FIGS. 6A-B and 5A-5M) are also applicable in ananalogous manner to the methods described below. For example, methods800 and 1000 may include one or more of the characteristics of thevarious methods described above with reference to method 600. Forbrevity, these details are not repeated below. The various methods andtechniques described above with reference to method 600 may beoptionally implemented as one or more units, such as those describedwith regard to FIG. 11.

The operations described above with reference to the figures may beimplemented by components depicted in FIGS. 1A-1B. For example, displayoperations and determination operations may be implemented by eventsorter 170, event recognizer 180, and event handler 190. Event monitor171 in event sorter 170 detects a contact on touch-sensitive display112, and event dispatcher module 174 delivers the event information toapplication 136-1. A respective event recognizer 180 of application136-1 compares the event information to respective event definitions186, and determines whether a first contact at a first location on thetouch-sensitive surface corresponds to a predefined event or sub-event,such as selection of an object on a user interface. When a respectivepredefined event or sub-event is detected, event recognizer 180activates an event handler 190 associated with the detection of theevent or sub-event. Event handler 190 may utilize or call data updater176 or object updater 177 to update the application internal state 192.In some embodiments, event handler 190 accesses a respective GUI updater178 to update what is displayed by the application. Similarly, it wouldbe clear to a person having ordinary skill in the art how otherprocesses can be implemented based on the components depicted in FIGS.1A-1B.

FIGS. 7A-7N illustrate exemplary user interfaces for previewing contentof a search result in accordance with some embodiments. The techniquesand user interfaces in these figures are used to illustrate theprocesses described below, including the process in FIG. 8.

FIGS. 7A-7D illustrate exemplary user interfaces for receiving a searchinput and providing a preview of content in accordance with someembodiments. At FIG. 7A, electronic device 100 displays a userinterface, including search field 702. A user of the device can enter asearch input, such as an alphanumeric text string, into search field 702to initiate a search. In some examples, the user does not need toindicate completion of entering the search input, such as by activatinga search affordance or pressing an enter button, to initiate the search.Instead, the device may automatically requests searches as the searchinput is progressively entered into search field 702.

FIG. 7B illustrates the user having entered a search input 704 into thesearch field 702 of a search application. The device receives the searchinput (e.g, 704 of FIG. 7B) and displays one or more search results(e.g., search result 706) obtained based on the received search input704. For example, search result 706 relates to a microblogging message.The device receives a request to preview a respective search result(e.g., to preview search result 706) of the one or more search results.For example, at FIG. 7B, the user selects (e.g., taps on) a previewaffordance 708 to preview the respective search result (e.g., searchresult 706). In some embodiments, the result can be accessed (e.g., thefull result) by selecting the search result (rather than the previewaffordance). An exemplary preview is illustrated in FIG. 7C.

FIG. 7C illustrates a preview of content of the respective search result(e.g., of search result 706 of FIG. 7B). In response to receiving therequest to preview the respective search result, the device displays apreview of content of the respective search result (e.g., preview 718 ofFIG. 7C). The preview of content of the respective search result (e.g.,718 of FIG. 7C) includes one or more actionable user interface objects(e.g., objects 710, 712, 714, 716) that, when activated, cause thedevice to perform an operation associated with the respective searchresult. In some embodiments, the preview of content of the respectivesearch result includes a plurality of different actionable userinterface objects that, when activated, cause the device to performdifferent operations associated with the respective search result.

For example, object 710, when activated, performs a follow operation toregister the device to follow the author of the microblog entry; object712, when activated, performs a reply operation to initiate a reply tothe microblog entry; object 714, when activated, performs a reblogoperation to initiate a resubmission of the microblog entry; object 716,when activated, initiates an email communication with the author of themicroblog entry.

In some embodiments, the preview of the respective search result isdisplayed in the search application. By being provided with a previewand access to actionable user interface objects, the user can easilypreview content and perform operations quickly and without the need toaccess various applications. For example, the user does not need to opena separate microblogging application or a separate website browserapplication to access the full microblog entry and to perform operationsthat are associated with the microblog entry.

In some embodiments, receiving the request to preview the respectivesearch result comprises receiving a selection of a preview affordance(e.g., 708 of FIG. 7B) associated with the respective search result. Forexample, a user selects a caret (e.g., 708 of FIG. 7B) in a mobileoperating system to preview the related search result.

In some embodiments, the search input (e.g., 704 of FIG. 7B) is receivedat a search application and the preview of content of the respectivesearch result (e.g., 718 of FIG. 7C) is displayed in the searchapplication (e.g., the search results and the previews are displayed inthe same search application). By receiving the search input anddisplaying the preview in the same application, the user has convenientaccess to previewing content without the need to perform cumbersometechniques to switch between a search application and a viewingapplication.

In some embodiments, the preview of content of the respective searchresult (e.g., 718 of FIG. 7C) replaces the respective search result(e.g., 706 of FIG. 7B). In some embodiments, the preview of the contentcompletely replaces the respective search result.

In some embodiments, the one or more actionable user interface objectsinclude a first actionable user interface object. The first actionableuser interface object initiates a communication with an entityassociated with the respective search result when the first actionableuser interface object is activated. For example, object 716 of FIG. 7C,when activated, initiates an email communication with the author of themicroblog entry. In some embodiments, the preview of content includesthe contact information of a person or business, including a phonenumber or email address. Selecting the phone number or email addressinitiates a phone call or email, respectively, with the person orbusiness. Initiating a communication using the preview of content allowsa user to quickly contact a person or individual related to the searchresult.

In some embodiments, the one or more actionable user interface objectsinclude a second actionable user interface object. The second actionableuser interface object initiates playback of a media content associatedwith the respective search result when the second actionable userinterface object is activated. In some embodiments, the preview ofcontent includes multimedia playback and purchase information, includinga link for accessing media. Selecting the link for accessing mediainitiates playback of media content. For example, a user can search formedia content, conduct a playback of the media content, and initiate apurchase of the media content by using the search application.

In some embodiments, the one or more actionable user interface objectsinclude a third actionable user interface object. The third actionableuser interface object initiates display of webpage content associatedwith the respective search result when the third actionable userinterface object is activated. In some embodiments, the preview ofcontent includes a portion of a webpage, including a link to a relatedwebpage. Selecting the link initiates display of the related webpage. Insome embodiments, a related webpage is displayed in the searchapplication. In some embodiments, the related webpage is displayed in aseparate application.

In some embodiments, the one or more actionable user interface objectsinclude a fourth actionable user interface object, and the fourthactionable user interface object comprises display of map contentassociated with the respective search result and the map content can bescrolled. In some embodiments, the preview of content includes a portionof a map, which can be panned, zoomed, or scrolled. In some embodiments,the map displayed in the preview can be activated to cause the displayof a separate map application.

FIG. 7D-7E illustrate exemplary user interfaces for displaying asoftware application associated with a search result in accordance withsome embodiments. While a preview of content of the search result can behelpful, there are times when a user may want to view detailedinformation relating to the respective search result or may want to viewthe full content of the respective search result. In some embodiments,the device receives selection of the respective search result (e.g., theuser taps on search result 706). As illustrated in FIG. 7E, in responseto receiving selection of the respective search result, the devicedisplays a software application corresponding to the selected searchresult (e.g., the application related to the respective search result isdisplayed and provides further details about the result). In thisexample, the software application is a microblogging application (e.g.,720 of FIG. 7E) that enables the user to view further details about thesearch result. In some embodiments, the software applicationcorresponding to the respective search result is different from thesearch application.

FIGS. 7F-7H illustrate exemplary user interfaces for displaying variousparts of a search result in accordance with some embodiments. In theseexamples, a user has entered a search input of “Her Movie” (e.g., searchinput 726) into search field 702 of FIG. 7F. The user can perform anoperation (e.g., a finger gesture) to display various parts of searchresult 732. In some embodiments, displaying one or more search resultsobtained based on the received search input comprises displaying a firstsearch result (e.g., search result 732). The device detects a swipegesture on a touch-sensitive surface at a location that corresponds to alocation of a first portion of the first search result on the display(e.g., first portion 728). In response to receiving the swipe gesture atthe first portion of the first search result (e.g., first portion 728),the device completely replaces display of the first portion of the firstsearch result (e.g., first portion 728) with display of a second portionof the first search result (e.g., second portion 730 of FIG. 7H). Insome embodiments, the first portion of the first remote search result(e.g., first portion 728) is replaced with the second portion of thefirst remote search result (e.g., second portion 730) by sliding the twoportions across the display in the direction of the swipe gesture, asillustrated in the transitions between FIG. 7F, FIG. 7G, and FIG. 7H. Inthis example, the first portion allows the user to see basic detailsabout the movie “Her”, as well as having the option to watch a trailerfor the movie. After the swipe gesture, in FIG. 7H, the device displaysshow times for the movie “Her”, as well as providing the option toaccess a show time for booking a ticket. In another embodiment, inresponse to detecting a swipe gesture while movie details from a moviedetails application are displaying, the device displays a link to make amovie reservation using a movie reservation application. In someembodiments, in response to detecting a swipe gesture while restaurantreviews from a restaurant review application are displayed, the devicedisplays a link to make reservations using a restaurant reservationapplication.

FIG. 7I illustrates an exemplary user interface for displaying theresult of a calculation or conversion in accordance with someembodiments. In FIG. 7I, a user has entered a search input 722 (e.g.,“12×12”) into search field 702. The device performs a computation on thesearch input 722, and provides the computation result as a search result724. In some embodiments, the device determines whether the search inputmeets a computation criteria. In one example, the search input meets thecomputation criteria when the search input is a mathematical expression.In accordance with a determination that the search input 722 meets thecomputation criteria, the device displays a computation result (e.g.,724 of FIG. 7I) of the one or more search results. The computationresult is based on a computation performed based on at least a portionof the search input. Thus, the computation result may be displayed alongwith other search results. In some embodiments, the search results aredisplayed in a drop down menu from an address bar of a web browser. Insome embodiments the search results are displayed in a stand-alonesearch window.

FIGS. 7J-7N illustrate exemplary user interfaces for receiving a searchinput and providing a preview of content in accordance with someembodiments. At FIG. 7J, electronic device 100 displays a user interfaceof a search application 738, including search field 740. A user of thedevice has entered a search input (e.g., 742 of FIG. 7J) into searchfield 740 to initiate a search. In some examples, the user does not needto indicate completion of entering the search input, such as byactivating a search affordance or pressing an enter button, to initiatethe search. Instead, the device may automatically requests searches asthe search input is progressively entered into search field 740.

In the user interface of FIG. 7J, the device receives the search input(e.g, 742 of FIG. 7J) and displays one or more search results (e.g.,search results 744, 748, 750) obtained based on the received searchinput 742. In FIG. 7J, the one or more search results are displayed in aleft pane 734 of the search application 738. For example, search result744 relates to an encyclopedia article about the city of Berlin, searchresult 748 relates to a song titled “Berlin Song” and search result 750relates to a song titled “Dancing to Berlin”. The device receives arequest to preview a respective search result (e.g., search result 744)of the one or more search results. For example, at FIG. 7J, the userselects (e.g., taps on using a finger or activates using a mouse cursor)a preview affordance to preview the respective search result (e.g.,search result 744). In some embodiments, the preview affordance isselected when the user activates any portion of the search result. Insome embodiments, the preview affordance is the title of the searchresult (e.g., “Berlin—Germany Capital” for 744 of FIG. 7J).

FIG. 7J also illustrates a preview of content of the respective searchresult (e.g., search result 744 of FIG. 7J). In response to receivingthe request to preview the respective search result, the device displaysa preview of content of the respective search result (e.g., preview 752of FIG. 7J). In FIG. 7J, the preview of content is displayed in a rightpane 736 of the search application 738. The preview of content of therespective search result (e.g., 752 of FIG. 7J) includes one or moreactionable user interface objects (e.g., objects 746 and 754) that, whenactivated, cause the device to perform an operation associated with therespective search result. In some embodiments, the preview of content ofthe respective search result includes a plurality of differentactionable user interface objects that, when activated, cause the deviceto perform different operations associated with the respective searchresult.

For example, object 746, when activated, causes an image displayoperation to be performed that displays a full-size image of therespective object; object 754, when activated, causes a webpage displayoperation to be performed that displays the contents of a webpageassociated with the respective object. In some embodiments, the previewof the respective search result and the operations performed aredisplayed in the search application. By being provided with a previewand access to actionable user interface objects, the user can easilypreview content and perform operations quickly and without the need toaccess various applications. For example, the user does not need to opena separate image-viewing application or a separate website browserapplication to perform the operations that are associated with theobjects 746 and 754. In some embodiments, the full-size image and thecontents of the webpage are displayed in the right pane 736, and replacethe preview.

In some embodiments, receiving the request to preview the respectivesearch result comprises receiving a selection of a preview affordanceassociated with the respective search result. For example, a userselects a different search result from a list of results on the leftpane (e.g., left pane 734) of a search application (e.g., searchapplication 738) to preview the respective search result on the rightpane (e.g., right pane 736) of the search application.

In some embodiments, the search input (e.g., 742 of FIG. 7J) is receivedat a search application and the preview of content of the respectivesearch result (e.g., 752 of FIG. 7J) is displayed in the searchapplication (e.g., the search results and the previews are displayed inthe same search application). By receiving the search input anddisplaying the preview in the same application, the user has convenientaccess to previewing content without the need to perform cumbersometechniques to switch between a search application and a viewingapplication.

In some embodiments, the preview of content of the respective searchresult replaces the respective search result. In some embodiments, thepreview of the content completely replaces the search result.

In some embodiments, the preview of content of the respective searchresult is displayed concurrently with the respective search result (e.g,the search result 744 is displayed in the left pane 734 and the preview752 is displayed in the right pane 736).

FIGS. 7J and 7K illustrate exemplary user interfaces for displayingdifferent previews for the same content. In some embodiments, thepreview of content changes based on the search terms, even if thepreviews are of the same content. For example, important informationsuch as the population of a city is displayed as part of the preview ofan encyclopedia article of the city if, for example, the search inputincludes “population”. If, however, a different search input producesthe same encyclopedia article as a search result, the preview of theencyclopedia article may not include the population of the city if, forexample, the search input does not include “population”. In anotherexample, if the search input specifies “elevation”, a preview of thesame encyclopedia article of the city will display the elevation, andnot the population.

In some embodiments, the preview of content of the respective searchresult includes first information when the search input includes a firstterm, and the preview of content of the respective search resultincludes second information when the search input includes a secondterm, the first term different from the second term. For example, thepreview 752 displayed in FIG. 7J and the preview 764 displayed in FIG.7K are exemplary previews for the same encyclopedia article aboutBerlin. Preview 752 resulting from search input 742 of “Capital ofGermany” does not include a description relating to the population ofBerlin as part of the preview 752 of the encyclopedia article. However,preview 764 resulting from a different search input (e.g., search input760 of FIG. 7K, “Population of Berlin”) includes first information 762relating to the population of Berlin as part of the preview 764 (e.g.“Population 3.5 Million”) of the same encyclopedia article. Thus,different search inputs that result in the same search result canproduce different previews of the content of the search result.Accordingly, important information from the result is displayed for theuser in the preview of content of the search result.

In some embodiments, the preview of content of the respective searchresult includes information in a first order when the search inputincludes a first term, and the preview of content of the respectivesearch result includes information in a second order when the searchinput includes a second term, the first term different from the secondterm. For example, important information such as population of a city isdisplayed at the top of the preview of an encyclopedia article of thecity if the search input includes “population”. However, if the searchinput does not include “population” and includes a different term, thepreview may include the population of the city at a different locationin the preview (e.g., at the bottom of the preview). Similarly, if thequery specifies “elevation”, a preview of the same encyclopedia articleof the city will display the elevation of the city at the top of thepreview, and not the population.

FIGS. 7J and 7L illustrate exemplary user interfaces for replacing onepreview of content with another preview of content in accordance withsome embodiments. At FIG. 7J, the device has received a request topreview search result 744 of FIG. 7J. In some embodiments, the devicereceives a second request to preview a second search result (e.g.,search result 748 of FIG. 7L) of the one or more search results (e.g.,search results 744, 748, 750 of FIGS. 7J and 7L). In response toreceiving the second request to preview the second search result, thedevice replaces display of the preview of content of the respectivesearch result (e.g., preview 752 of FIG. 7J) with display of a previewof content of the second search result (e.g., preview 766 of FIG. 7L).The preview of content of the second search result (e.g., preview 766 ofFIG. 7L) includes one or more actionable user interface objects (e.g.,play object 768) that, when activated, causes the device to perform anoperation associated with the second search result. In some embodiments,the list of search results is maintained on the display even while thepreview is updated. Thus, a user can select from among the searchresults in the left pane 734, to see the preview of the selected resultin the right pane 736 of search application 738. An indication may bedisplayed so that the user knows which search result is currently beingpreviewed. For example, search result 748 in FIG. 7L is bolded toindicate that the preview in right pane 736 relates to search result748.

In some embodiments, the one or more actionable user interface objectsinclude a second actionable user interface object. The second actionableuser interface object initiates playback of a media content associatedwith the respective search result when the second actionable userinterface object is activated. For example, object 768 of FIG. 7L, whenactivated, initiates playback of the song “Berlin Song”, which isassociated with the search result 748 of FIG. 7L. In some embodiments,the preview of content includes multimedia playback and purchaseinformation, including a link for accessing media. Selecting the linkfor accessing media initiates playback of media content. For example, auser can search for media content, conduct a playback of the mediacontent, and initiate a purchase of the media content by using thesearch application.

In some embodiments, the one or more actionable user interface objectsinclude a third actionable user interface object. The third actionableuser interface object initiates display of webpage content associatedwith the respective search result when the third actionable userinterface object is activated. In some embodiments, the preview ofcontent includes a portion of a webpage, including a link to a relatedwebpage. Selecting the link initiates display of the related webpage.For example, preview 752 of FIG. 7J includes object 754, which, whenactivated, initiates display of the full encyclopedia article associatedwith search result 744 of FIG. 7J. In some embodiments, a relatedwebpage is displayed in the search application. In some embodiments, therelated webpage is displayed in a separate application.

FIG. 7M illustrates an exemplary user interface for displaying a previewof a search result. Search input 770 results in search results displayedin left pane 734. Preview 772 is for a restaurant review of Star Pizza.Preview 772 includes one or more actionable user interface objects. Forexample, object 778 of FIG. 7M, when activated, initiates an telephonecommunication with the restaurant Star Pizza at the telephone number415-555-5555. In some embodiments, the one or more actionable userinterface objects include a first actionable user interface object(e.g., object 778 of FIG. 7M). The first actionable user interfaceobject (e.g., object 778) initiates a communication with an entityassociated with the respective search result when the first actionableuser interface object is activated. In some embodiments, the preview ofcontent includes the contact information of a person or business,including a phone number or email address. Selecting the phone number oremail address initiates a phone call or email, respectively, with theperson or business. Initiating a communication using the preview ofcontent allows a user to quickly contact a person or individual relatedto the search result.

In some embodiments, the one or more actionable user interface objectsinclude a fourth actionable user interface object, and the fourthactionable user interface object comprises display of map contentassociated with the respective search result and the map content can bescrolled. For example, preview 772 of FIG. 7M includes object 776, whichincludes display of a map. The displayed map of object 776 may bescrolled. For example, a user can scroll the map of object 776 to theleft or right using a mouse cursor or a finger gesture. In someembodiments, the preview of content includes a portion of a map, whichcan be panned, zoomed, or scrolled. For example, a user can pan, zoom,or scroll the map of object 776 using a mouse cursor or a fingergesture. In some embodiments, the map displayed in the preview can beactivated to cause the display of a separate map application. In someembodiments, an activated actionable user interface object causesdisplay of a separate map application. For example, activating object774 causes display of a separate map application that provides drivingdirections to the Star Pizza restaurant.

FIG. 7N illustrates an exemplary user interface for displaying theresult of a calculation or conversion in accordance with someembodiments. In FIG. 7N, a user has entered a search input 780(“12*345”) into search field 740 of search application 738. The deviceperforms a computation on the search input 780, and provides thecomputation result as a search result 784. In some examples, preview 782displays the result of the computation as preview 782. In someembodiments, the device determines whether the search input meets acomputation criteria. In one example, the search input meets thecomputation criteria when the search input is a mathematical expression.In accordance with a determination that the search input meets thecomputation criteria, the device displays a computation result of theone or more search results. The computation result is based on acomputation performed based on at least a portion of the search input.Thus, the computation result may be displayed along with other searchresults. In some embodiments, the search results are displayed in a dropdown menu from an address bar of a web browser. In some embodiments thesearch results are displayed in a stand-alone search window.

FIG. 8 is a flow diagram illustrating a method 800 for previewingcontent of a search result in accordance with some embodiments. Method800 is performed at a device (e.g., device 300, FIG. 3, or portablemultifunction device 100, FIG. 1) with a display. Some operations inmethod 800 may be combined, the order of some operations may be changed,and some operations may be omitted.

As described below, method 800 provides an intuitive way to displaypreviews of content of a search result in accordance with someembodiments. The method reduces the cognitive burden on a user whensearching, thereby creating a more efficient human-machine interface.For battery-operated computing devices, enabling a user to conduct asearch faster and more efficiently conserves power and increases thetime between battery charges.

At block 802, the device receives a search input (e.g, 704 of FIG. 7B,742 of FIG. 7J). At block 804, the device displays one or more searchresults (e.g., 706 of FIG. 7B, 744, 748, 750 of FIG. 7J) obtained basedon the received search input.

At block 806, in some embodiments, displaying one or more search resultsobtained based on the received search input comprises displaying a firstsearch result (e.g., search result 732 of FIG. 7F). The device detects aswipe gesture on a touch-sensitive surface at a location thatcorresponds to a location of a first portion of the first search resulton the display (e.g., 728 of FIG. 7F). In response to receiving theswipe gesture at the first portion of the first search result (e.g., 728of FIG. 7F), the device completely replaces display of the first portionof the first search result (e.g., 728 of FIG. 7F) with display of asecond portion of the first search result (e.g., 730 of FIG. 7H). Insome embodiments, the first portion of the first remote search result(e.g., 728 of FIG. 7F) is replaced with the second portion of the firstremote search result (e.g., 730 of FIG. 7H) by sliding the two portionsacross the display in the direction of the swipe gesture. In anotherembodiment, in response to detecting a swipe gesture while movie detailsfrom a movie details application are displaying, the device displays alink to make a movie reservation using a movie reservation application.In some embodiments, in response to detecting a swipe gesture whilerestaurant reviews from a restaurant review application are displayed,the device displays a link to make reservations using a restaurantreservation application.

At block 808, the device receives a request to preview a respectivesearch result (e.g., 706 of FIG. 7B, 744 of FIG. 7J) of the one or moresearch results. In some embodiments, receiving the request to previewthe respective search result comprises receiving a selection of apreview affordance (e.g., 708 of FIG. 7B) associated with the respectivesearch result (e.g., 706 of FIG. 7B).

At block 810, in response to receiving the request to preview therespective search result, the device displays a preview of content ofthe respective search result (e.g., 718 of FIG. 7C, 752 of FIG. 7J). Thepreview of content of the respective search result (e.g., 718 of FIG.7C, 752 of FIG. 7J) includes one or more actionable user interfaceobjects (e.g., objects 710, 712, 714, 716 of FIG. 7C, objects 746, 754of FIG. 7J) that, when activated, cause the device to perform anoperation associated with the respective search result. In someembodiments, the preview of content of the respective search resultincludes a plurality of different actionable user interface objects(e.g., objects 710, 712, 714, 716 of FIG. 7C, objects 746, 754 of FIG.7J) that, when activated, cause the device to perform differentoperations associated with the respective search result. In someembodiments, the preview of the respective search result is displayed inthe search application. By being provided with a preview and access toactionable user interface objects, the user can easily preview contentand perform operations quickly and without the need to access variousapplications. For example, the user does not need to open a separateapplication to access content and to perform operations that areassociated with the content.

In some embodiments, the search input (e.g, 704 of FIG. 7B, 742 of FIG.7J) is received at a search application and the preview of content ofthe respective search result (e.g., 718 of FIG. 7C, 752 of FIG. 7J) isdisplayed in the search application (e.g., search input, the searchresults, and the previews are displayed in the same search application).By receiving the search input and displaying the preview in the sameapplication, the user has convenient access to previewing contentwithout the need to perform cumbersome techniques to switch between asearch application and a viewing application.

In some embodiments, the preview of content of the respective searchresult (e.g., 718 of FIG. 7C) replaces the respective search result(e.g., 706 of FIG. 7B). In some embodiments, the preview of the contentcompletely replaces the search result.

In some embodiments, the preview of content of the respective searchresult is displayed concurrently with the respective search result (e.g,in FIG. 7J, the search result 744 is displayed in the left pane 734 andthe preview 752 is displayed in the right pane 736).

In some embodiments, the preview of content of the respective searchresult includes first information (e.g., 752 of FIG. 7J) when the searchinput (e.g., 742 of FIG. 7J) includes a first term, and the preview ofcontent of the respective search result includes second information(e.g., 764 of FIG. 7K) when the search input includes a second term(e.g., 760 of FIG. 7K), the first term different from the second term(e.g., important information such as population of a city is displayedas part of the preview of an encyclopedia article of the city if, forexample, the query includes “population”. Similarly, if the queryspecifies “elevation”, a preview of the same encyclopedia article of thecity will display the elevation, and not the population) Thus, differentsearch inputs that result in the same search result can producedifferent previews of the content of the result. Accordingly, importantinformation from the result is displayed for the user in the preview ofcontent of the search result.

In some embodiments, the preview of content of the respective searchresult includes information in a first order when the search inputincludes a first term, and the preview of content of the respectivesearch result includes information in a second order when the searchinput includes a second term, the first term different from the secondterm. For example, important information such as population of a city isdisplayed at the top of the preview of an encyclopedia article of thecity if the search input includes “population”. However, if the searchinput does not include “population” and includes a different term, thepreview may include the population of the city at a different locationin the preview (e.g., at the bottom of the preview). Similarly, if thequery specifies “elevation”, a preview of the same encyclopedia articleof the city will display the elevation of the city at the top of thepreview, and not the population.

At block 812, in some embodiments, the device receives a second requestto preview a second search result (e.g., 748 of FIG. 7L) of the one ormore search results (e.g., 744, 748, 750 of FIGS. 7J and 7L). Inresponse to receiving the second request to preview the second searchresult, the device replaces display of the preview of content of therespective search result (e.g., 752 of FIG. 7J) with display of apreview of content of the second search result (e.g., 766 of FIG. 7L).The preview of content of the second search result (e.g., 766 of FIG.7L) includes one or more actionable user interface objects (e.g., 768 ofFIG. 7L) that, when activated, causes the device to perform an operationassociated with the second search result. In some embodiments, the listof search results is maintained on the display even while the preview isupdated. Thus, a user can select from among the search results in theleft pane (e.g., 734 of FIGS. 7J and 7L), to see the preview of theselected result in the right pane (e.g. 736 of FIGS. 7J and 7L) of thesearch application (e.g., 738 of FIGS. 7J and 7L).

In some embodiments, the one or more actionable user interface objectsinclude a first actionable user interface object (e.g., 716 of FIG. 7C).The first actionable user interface object (e.g., 716 of FIG. 7C)initiates a communication with an entity associated with the respectivesearch result when the first actionable user interface object isactivated. In some embodiments, the preview of content includes thecontact information of a person or business, including a phone number oremail address. Selecting the phone number or email address initiates aphone call or email, respectively, with the person or business.Initiating a communication using the preview of content allows a user toquickly contact a person or individual related to the search result.

In some embodiments, the one or more actionable user interface objectsinclude a second actionable user interface object (e.g., 768 of FIG.7L). The second actionable user interface object (e.g., 768 of FIG. 7L)initiates playback of a media content associated with the respectivesearch result when the second actionable user interface object isactivated. In some embodiments, the preview of content includesmultimedia playback and purchase information, including a link foraccessing media. Selecting the link for accessing media initiatesplayback of media content. For example, a user can search for mediacontent, conduct a playback of the media content, and initiate apurchase of the media content by using the search application.

In some embodiments, the one or more actionable user interface objectsinclude a third actionable user interface object (e.g., 754 of FIG. 7J).The third actionable user interface object (e.g., 754 of FIG. 7J)initiates display of webpage content associated with the respectivesearch result when the third actionable user interface object isactivated. In some embodiments, the preview of content includes aportion of a webpage, including a link to a related webpage. Selectingthe link initiates display of the related webpage. In some embodiments,a related webpage is displayed in the search application. In someembodiments, the related webpage is displayed in a separate application.

In some embodiments, the one or more actionable user interface objectsinclude a fourth actionable user interface object (e.g., 776 of FIG.7M), and the fourth actionable user interface (e.g., 776 of FIG. 7M)object comprises display of map content associated with the respectivesearch result and the map content can be scrolled. In some embodiments,the preview of content includes a portion of a map, which can be panned,zoomed, or scrolled. In some embodiments, the map displayed in thepreview can be activated to cause the display of a separate mapapplication.

At block 814, in some embodiments, the device receives selection of therespective search result (e.g., 706 of FIG. 7D). In response toreceiving selection of the respective search result (e.g., 706 of FIG.7D), the device displays a software application corresponding to theselected search result (e.g., 720 of FIG. 7E; the application related tothe selected search result is displayed and provides further detailsabout the result). In some embodiments, the software applicationcorresponding to the respective search result is different from thesearch application.

In some embodiments, the device determines whether the search input(e.g., 722 of FIG. 7I, 780 of FIG. 7N) meets a computation criteria. Inone example, the search input meets the computation criteria when thesearch input is a mathematical expression. In accordance with adetermination that the search input (e.g., 722 of FIG. 7I, 780 of FIG.7N) meets the computation criteria, the device displays a computationresult (e.g., 724 of FIG. 7I, 782 of FIG. 7N) of the one or more searchresults. The computation result is based on a computation performedbased on at least a portion of the search input (e.g., 722 of FIG. 7I,780 of FIG. 7N). Thus, the computation result may be displayed alongwith other search results. In some embodiments, the search results aredisplayed in a drop down menu from an address bar of a web browser. Insome embodiments the search results are displayed in a stand-alonesearch window.

Note that details of the processes described above with respect tomethod 800 (e.g., FIGS. 8 and 7A-7N) are also applicable in an analogousmanner to the methods described below and above. For example, methods600 and 1000 may include one or more of the characteristics of thevarious methods described above with reference to method 800. Forbrevity, these details are not repeated below. The various methods andtechniques described above with reference to method 800 may beoptionally implemented as one or more units, such as those describedwith regard to FIG. 11.

The operations described above with reference to the figures may beimplemented by components depicted in FIGS. 1A-1B. For example, displayoperations and receive operations may be implemented by event sorter170, event recognizer 180, and event handler 190. Event monitor 171 inevent sorter 170 detects a contact on touch-sensitive display 112, andevent dispatcher module 174 delivers the event information toapplication 136-1. A respective event recognizer 180 of application136-1 compares the event information to respective event definitions186, and determines whether a first contact at a first location on thetouch-sensitive surface corresponds to a predefined event or sub-event,such as selection of an object on a user interface. When a respectivepredefined event or sub-event is detected, event recognizer 180activates an event handler 190 associated with the detection of theevent or sub-event. Event handler 190 may utilize or call data updater176 or object updater 177 to update the application internal state 192.In some embodiments, event handler 190 accesses a respective GUI updater178 to update what is displayed by the application. Similarly, it wouldbe clear to a person having ordinary skill in the art how otherprocesses can be implemented based on the components depicted in FIGS.1A-1B.

FIGS. 9A-9M illustrate exemplary user interfaces for providing optionsto initiate a search using a search engine in accordance with someembodiments. The user interfaces in these figures are used to illustratethe processes described below, including the process in FIGS. 10A-10B.

FIGS. 9A-9E illustrate exemplary user interfaces for providing varioussearch options in accordance with some embodiments. FIG. 9A illustratesan exemplary user interface of an electronic device 100, includingsearch field 902. In some examples, search field 902 also displays (andaccepts) website URLs for access to websites. Thus, when a website isbeing accessed, the URL of the website may be displayed in search field902. Similarly, a user can directly access a website by entering the URLof the website into search field 902. For example, search field 902 maybe displayed as part of a web browser application or may be displayed aspart of the operating system. At FIG. 9B, a user has entered a searchinput 904 (e.g., “IMSe Her”) into search field 902. For example, IMSemay be the short name for “Internet Movie Search evaluator,” a websitethat provides descriptions and reviews about movies. The IMSe websitehas its own search engine, which may be accessible directly through thewebsite (e.g., at “IMSe.com/search.html”) or accessible through APIs(e.g., making an API call for a search and receiving an API responsewith search results and details). The device receives the search input(e.g., 904 of FIG. 9B) and determines whether the search input (e.g.,904) includes a search-engine-specifier term. In the example of FIG. 9B,“IMSe” of search input 904 is a search-engine-specifier term. In someembodiments, the determination is case-sensitive. Thus, “imse” and“IMSe” are treated differently. In some embodiments, the determinationis case-insensitive, and “imse” and “IMSe” are treated the same. In someembodiments, the device maintains a database that mapssearch-specifier-terms to corresponding search engines.

In accordance with a determination that the search input includes asearch-engine-specifier term that corresponds to a respective searchengine (e.g., the term “IMSe” corresponds to the search engine of theInternet Movie Search evaluator server), the device concurrentlydisplays one or more selectable options (e.g., options 906, 908 of FIG.9B) for initiating a search of at least a first portion of the searchinput using the respective search engine (e.g., search for “Her” or“Hercules” using the IMSe search engine) and one or more selectableoptions (e.g., options 914, 916 of FIG. 9B) for initiating a search ofat least a second portion of the search input using a default searchengine (e.g., search for “IMSe Her” or “IMSe Hercules” using a defaultsearch engine, such as Google). For example, initiating a search usingthe respective search engine initiates a search that uses the IMSesearch engine, rather than simply searching the IMSe website using thedefault search engine.

In some embodiments, the at least the first portion of the search inputdoes not include the search-engine-specifier term (e.g., searching IMSefor “Her” using the IMSe search engine does not use the term “IMSe” aspart of the search query sent to the IMSe search engine). In someembodiments, the at least the second portion of the search inputincludes the search-engine-specifier term (e.g., searching the defaultsearch engine uses the entire search input “IMSe Her” for the search).

In some embodiments, the device displays a first identifier icon (e.g.,906A, 908A of FIG. 9B) adjacent to each of the one or more selectableoptions (e.g., options 906, 908 of FIG. 9B) for initiating search of atleast the first portion of the search input using the respective searchengine. The device displays a second identifier icon (e.g., 914A, 916Aof FIG. 9B) adjacent to each of the one or more selectable options(e.g., options 914, 916 of FIG. 9B) for initiating search of at leastthe second portion of the search input using the default search engine.The first identifier icon is different from the second identifier icon.Thus, a user can easily determine that the different search options arerelated to different search engines.

In some embodiments, the one or more selectable options (e.g., options906, 908 of FIG. 9B) for initiating the search of at least the firstportion of the search input using the respective search engine includesone or more search completion suggestions (e.g., 908 of FIG. 9B)received from the respective search engine (e.g., the respective searchengine selected based on the search-engine-specifier term providessuggested search terms for the search options). For example, althoughthe term “Hercules” was not in the search input, the search optionspresented to the user include the suggestion of searching for “Hercules”using the respective search engine because the respective search engineprovided the suggestion.

In some embodiments, the one or more selectable options (e.g., options914, 916 of FIG. 9B) for initiating the search of at least the secondportion of the search input using the default search engine includes oneor more search completion suggestions (e.g., 916 of FIG. 9B) receivedfrom the default search engine (e.g., the default search engine providessuggested search terms). For example, although the term “Hercules” wasnot in the search input, the search results presented to the userinclude the suggestion of searching for “Hercules” using the defaultsearch engine because the default search engine provided the suggestion.

In some embodiments, the search input comprises two or more characterstrings separated by a separation character (e.g., a space) and thesearch-engine-specifier term is a leading character string of the searchinput. In the example of FIG. 9B, the string “IMSe” is separated fromthe string “Her” by a space. The search-engine-specifier term is “IMSe”(e.g., the leading character string).

In some embodiments, determining whether the search input includes asearch-engine-specifier term comprises determining whether a leadingword of the search input has a character count that exceeds a thresholdcharacter count (e.g., determining whether the leading word is longerthan 2 letters). In accordance with a determination that that theleading word does not have a character count that exceeds the thresholdcharacter count (e.g., the leading word is 2 letters or less), thedevice reaches a determination that the search input does not include asearch-engine-specifier term.

In some embodiments, the search-engine-specifier term of the searchinput is a second-level domain name of the respective search engine(e.g., the search-engine-specifier term for a search engine ofwww.icloud.com is “icloud”).

In some embodiments, the search-engine-specifier term of the searchinput is a third-level domain name of the respective search engine(e.g., the search-engine-specifier term for a search engine ofwww.icloud.co.uk is “icloud”).

FIGS. 9B and 9C illustrate exemplary user interfaces for displayingsearch results in accordance with some embodiments. In some embodiments,the device receives user selection of a first selectable option (e.g.,the user taps on option 906 of FIG. 9B) of the one or more selectableoptions for initiating search of at least the first portion of thesearch input using the respective search engine (e.g., the IMSe searchengine). In response to receiving user selection of the first selectableoption, the device initiates search of at least the first portion of thesearch input using the respective search engine (e.g., go to a URL orcall an API to search for the results; the search is requested with theIMSe search engine using a search query of “Her”). The device receivessearch result information from the respective search engine (e.g., theIMSe search engine returns the top hit and/or a list of search results).As illustrated in FIG. 9C, the device displays a search result (e.g., alist of search results; 922 of FIG. 9C) based on the search resultinformation. In some examples, the search result information includesthe URLs and/or the titles of the results. For example, the display of asearch result may be done by directing the user to a search resultwebpage (e.g., http://IMSe.com) of the respective search engine.

FIGS. 9B and 9E illustrate exemplary user interfaces for providing anoption to directly access a result of a search. In some embodiments, inaccordance with the determination that the search input includes asearch-engine-specifier term (e.g., “IMSe”) that corresponds to therespective search engine, the device concurrently displays one or moreselectable options (e.g., 910, 912 of FIG. 9B) for accessing a result ofsearching at least the first portion of the search input using therespective search engine (e.g., a drop down menu or search resultlisting has a direct link to the top result(s) for search of “Her” usingthe IMSe search engine, such as “Her (2013)” and “Hercules (2014)”). Forexample, the user is provided with the option to directly access awebsite result of the searching (e.g., “http://IMSe.com/Her”), ratherthan accessing a listing of the search results. In some examples, thetop search result is provided as an option for direct access. In someembodiments, the device receives user selection of a second selectableoption (e.g., finger tap on 910 of FIG. 9B) of the one or moreselectable options for accessing the result of searching at least thefirst portion of the search input using the respective search engine. Asillustrated in FIG. 9E, in response to receiving user selection of thesecond selectable option (e.g., 910 of FIG. 9B), the device displays aresult of the search (e.g., website 930 of FIG. 9E) associated with thesecond selectable option (e.g., display the top website that a search ofthe IMSe search engine returns). For example, FIG. 9E illustratesdisplay of the IMSe webpage for the movie “Her”, which is at the URL“http://IMSe.com/Her”. By being provided with an option for accessing aresult of searching, the user does not need to first access a list ofsearch results at the website of the respective search engine. Instead,the user can directly access the result.

FIG. 9D illustrates an exemplary user interface for providing a searchoption for a default search engine in accordance with some embodiments.In some embodiments, in accordance with a determination that the searchinput (e.g., “IXSe her” 924 of FIG. 9D) does not include asearch-engine-specifier term, the device displays one or more selectableoptions (e.g., 926 of FIG. 9D) for initiating a search of at least asecond portion of the search input using the default search engine(e.g., search for “IXSe her” using google without displaying anyaffordances or options for performing a search of a non-default searchengine using the search input). If a user activates the selectableoption 926, the device performs a search based on the search input “IXSEher” using the default search engine (e.g., Google).

FIGS. 9F-9I illustrate exemplary user interfaces for detecting a newsearch engine and associating a new search-engine-identifier with thenew search engine. At FIG. 9F, a user has entered a search input of“Apple computer” (e.g., 932 of FIG. 9F) into search field 902 of FIG.9F. The device receives the search input and provides a selectableoption (e.g., 934 of FIG. 9F) to initiate a search based on the searchinput (e.g., 932 of FIG. 9F) using the default search engine (e.g.,Google). At this point, the search engine of Apple.com is not associatedwith any search-engine-identifier at the device.

At FIG. 9G, the user accesses Apple's search engine by using a webbrowser on the device to navigate to the search engine (e.g., navigateto “apple.com”, 936 of FIG. 9G). The user has entered a search query(e.g., “email”) into a text search location (e.g., 938 of FIG. 9G) ofApple.com's search engine. The user activates the “go” affordance toinitiate the search (e.g., the user taps on affordance 940 of FIG. 9G).At FIG. 9H, Apple's search engine returns a webpage (e.g., 942 of FIG.9E) that includes search results provided by Apple's search engine, as aresult of the user activating the “go” affordance. The device detectsthat a search was conducted using a new search engine (e.g., Apple'ssearch engine), and associates the new search engine with asearch-engine-identifier (e.g., “apple”). This allows the user to searchusing the new search engine in the future by, for example, using thesearch engine identifier. In some embodiments, the device detects asearch conducted using a second search engine (e.g., Apple's searchengine), wherein the second search engine does not correspond to anysearch-engine-specifier term. The device associates (e.g., byautomatically selecting or after receiving from the user) a newsearch-engine-specifier term (e.g., “apple”) with the second searchengine. In some embodiments, when the steps described above withreference to FIGS. 9G-9H are performed before thesearch-engine-specifier term (e.g., “apple”) for the second searchengine (e.g., Apple's search engine) is established, even if the searchstring starts with the term that is used as the newsearch-engine-specifier term (e.g., “apple iphone”), no affordances oroptions for initiating a search using the second search engine (e.g.,Apple's search engine) are displayed. Once the newsearch-engine-specifier term (e.g., “apple”) for the second searchengine is established, search strings (e.g., “apple computer”) thatstart with the new search-engine-specifier term cause the device todisplay affordances and/or options for initiating a search using thesecond search engine (e.g., Apple's search engine). In some embodiments,the device automatically, without user intervention, assigns asearch-engine-specifier term for the second search engine (e.g., thedevice assigns the second search engine a search-engine-specifier termof the truncated URL of the second search engine).

FIG. 9I illustrates an exemplary user interface for conducting a searchusing a new search engine. After the process described with regard toFIGS. 9G-9H have been performed and a search-engine-specifier term(e.g., “apple”) has been associated with the new search engine (e.g.,Apple's search engine), the user may be presented with the option tosearch using the new search engine. For example, when the user conductsa new search by entering a new search input (e.g., “apple computer” 932of FIG. 9I) that includes the search-engine-specifier term (e.g.,“apple”), the device provides an option (e.g., 944 of FIG. 9I) toinitiate search using the new search engine. In some embodiments, thedevice also provides an option to initiate a search using the defaultsearch engine (e.g., 934 of FIG. 9I). In some embodiments, the devicereceives a second search input (e.g., “apple computer” 932 of FIG. 9I).The device determines whether the second search input (e.g., 932 of FIG.9I) includes a search-engine-specifier term (e.g. when the first word ofthe search input is “apple”). In accordance with a determination thatthe second search input (e.g., 932 of FIG. 9I) includes the first termas a search-engine-specifier term that corresponds to the second searchengine, the device concurrently displays one or more selectable options(e.g., 944 of FIG. 9I) for initiating a search based on at least a thirdportion of the second search input using the second search engine (e.g.,search for “computer” using Apple's search engine) and one or moreselectable options (e.g., 934 of FIG. 9I) for initiating a search basedon at least a second portion of the second search input using thedefault search engine (e.g., search for “apple computer” using Google).

In some embodiments, the device receives a user request to associate asecond term with a third search engine, the user request for assigningthe second term as a search-engine-specifier term corresponding to thethird search engine, and the device associates the second term with thethird search engine (e.g., the user can request that a specific term beas the search-engine-specifier term for a particular search engine).Thus, the user can select what types of search inputs will triggeroptions for which search engines. For example, the user can change thesearch-engine-specifier term for Apple's search engine from “apple” to“appl”. In some embodiments, the user can also request to change thesearch-engine-specifier term that is associated with the first searchengine.

In some embodiments, the device displays a search engine selectionaffordance adjacent to a search input area (e.g., search field 902). Thedevice detects activation of the search engine selection affordance,and, in response to activation of the search engine selectionaffordance, displays a plurality of options for a default search engine.For example, the search input area is where the search input is typed inby the user. By displaying options for a default search engine, the useris able to see the list of search engines available for selection as thedefault search engine.

In some embodiments, the device detects selection of a first searchengine option of the plurality of options for a default search engine,the first search engine option associated with a first search engine,and, in response to detecting the selection of the first search engineoption of the plurality of options for a default search engine, thedevice changes the default search engine to the first search engine. Insome embodiments, the user selects, from among various options, a searchengine to be used as the default search engine. Thus, the user is ableto specify which search engine should be used as the default searchengine.

FIGS. 9J-9M illustrate exemplary user interfaces for providing varioussearch options in accordance with some embodiments. FIG. 9J illustratesan exemplary user interface of an electronic device 100, includingsearch field 950. Search field 950 also displays (and accepts) websiteURLs for access to websites. For example, search field 950 may bedisplayed as part of a web browser application or may be displayed aspart of the operating system. At FIG. 9K, a user has entered a searchinput 952 (e.g., “IMSe Her”) into the search field 950. For example,IMSe may be the short name for “Internet Movie Search evaluator,” awebsite that provides descriptions and reviews about movies. The IMSewebsite has its own search engine, which may be accessible directlythrough the website (e.g., at “IMSe.com/search.html”) or accessiblethrough APIs (e.g., making an API call for a search and receiving an APIresponse with search results and details). The device receives thesearch input (e.g., 952 of FIG. 9K) and determines whether the searchinput (e.g., 952 of FIG. 9K) includes a search-engine-specifier term. Inthe example of FIG. 9K, “IMSe” of search input 952 is asearch-engine-specifier term. In some embodiments, the determination iscase-sensitive. Thus, “imse” and “IMSe” are treated differently. In someembodiments, the determination is case-insensitive, and “imse” and“IMSe” are treated the same. In some embodiments, the device maintains adatabase that maps search-specifier-terms to corresponding searchengines.

In accordance with a determination that the search input includes asearch-engine-specifier term that corresponds to a respective searchengine (e.g., the term “IMSe” corresponds to the search engine of theInternet Movie Search evaluator server), the device concurrentlydisplays one or more selectable options (e.g., options 954, 956 of FIG.9K) for initiating a search of at least a first portion of the searchinput using the respective search engine (e.g., search for “Her” or“Hercules” using the IMSe search engine) and one or more selectableoptions (e.g., options 962, 964 of FIG. 9K) for initiating a search ofat least a second portion of the search input using a default searchengine (e.g., search for “IMSe Her” or “IMSe Hercules” using a defaultsearch engine, such as Google). For example, initiating a search usingthe respective search engine initiates a search that uses the IMSesearch engine, rather than simply searching the IMSe website using thedefault search engine. In some embodiments, the one or more selectableoptions are presented as a drop-down menu from the search field 950. Insome embodiments, the at least the first portion of the search inputdoes not include the search-engine-specifier term. In some embodiments,the at least the second portion of the search input includes thesearch-engine-specifier term.

In some embodiments, the device displays a first identifier icon (e.g.,954A, 956A of FIG. 9K) adjacent to each of the one or more selectableoptions (e.g., options 954, 956 of FIG. 9K) for initiating search of atleast the first portion of the search input using the respective searchengine. The device displays a second identifier icon (e.g., 962A, 964Aof FIG. 9K) adjacent to each of the one or more selectable options(e.g., options 962, 964 of FIG. 9B) for initiating search of at leastthe second portion of the search input using the default search engine.The first identifier icon is different from the second identifier icon.Thus, a user can easily determine that the different search options arerelated to different search engines.

In some embodiments, the one or more selectable options (e.g., options954, 956 of FIG. 9K) for initiating the search of at least the firstportion of the search input using the respective search engine includesone or more search completion suggestions (e.g., 956 of FIG. 9K)received from the respective search engine. (e.g., the respective searchengine selected based on the search-engine-specifier term providessuggested search terms). For example, although the term “Hercules” wasnot in the search input, the search results presented to the userinclude the suggestion of searching for “Hercules” using the respectivesearch engine.

In some embodiments, the one or more selectable options (e.g., options962, 964 of FIG. 9K) for initiating the search of at least the secondportion of the search input using the default search engine includes oneor more search completion suggestions (e.g., 964 of FIG. 9K) receivedfrom the default search engine (e.g., the default search engine providessuggested search terms). For example, although the term “Hercules” wasnot in the search input, the search results presented to the userinclude the suggestion of searching for “Hercules” using the defaultsearch engine.

In some embodiments, the search input comprises two or more characterstrings separated by a separation character (e.g., a space) and thesearch-engine-specifier term is a leading character string of the searchinput. In the example of FIG. 9K, the string “IMSe” is separated fromthe string “Her” by a space. The search-engine-specifier term is “IMSe”(e.g., the leading character string).

In some embodiments, determining whether the search input includes asearch-engine-specifier term comprises determining whether a leadingword of the search input has a character count that exceeds a thresholdcharacter count (e.g., determining whether the leading word is longerthan 2 letters). In accordance with a determination that that theleading word does not have a character count that exceeds the thresholdcharacter count (e.g., the leading word is 2 letters or less), thedevice reaches a determination that the search input does not include asearch-engine-specifier term.

In some embodiments, the search-engine-specifier term of the searchinput is a second-level domain name of the respective search engine(e.g., the search-engine-specifier term for a search engine ofwww.icloud.com is “icloud”).

In some embodiments, the search-engine-specifier term of the searchinput is a third-level domain name of the respective search engine(e.g., the search-engine-specifier term for a search engine ofwww.icloud.co.uk is “icloud”).

FIGS. 9K and 9L illustrate exemplary user interfaces for displayingsearch results in accordance with some embodiments. In some embodiments,the device receives user selection of a first selectable option (e.g.,option 954 of FIG. K) of the one or more selectable options forinitiating search of at least the first portion of the search inputusing the respective search engine (e.g., the IMSe search engine). Inresponse to receiving user selection of the first selectable option, thedevice initiates search of at least the first portion of the searchinput using the respective search engine (e.g., go to a URL or call anAPI to search for the results; the search is requested with the IMSesearch engine for using a search query of “Her”). The device receivessearch result information from the respective search engine (e.g., theIMSe search engine returns the top hit and/or a list of search results).As illustrated in FIG. 9L, the device displays a search result (e.g., alist of search results; 968 of FIG. 9L) based on the search resultinformation. In some examples, the search result information includesthe URLs and/or the titles of the results. For example, the display of asearch result may be done by directing the user to a search resultwebpage (e.g., http://IMSe.com) of the respective search engine.

FIGS. 9K and 9M illustrate exemplary user interfaces for providing anoption to directly access a result of a search. In some embodiments, inaccordance with the determination that the search input includes asearch-engine-specifier term (e.g., “IMSe”) that corresponds to therespective search engine, the device concurrently displays one or moreselectable options (e.g., 958, 960 of FIG. 9K) for accessing a result ofsearching at least the first portion of the search input using therespective search engine (e.g., a drop down menu or search resultlisting has a direct link to the top result(s) for search of “Her” usingthe IMSe search engine, such as “Her (2013)” and “Hercules (2014)”). Forexample, the user is provided with the option to directly access awebsite result of the searching (e.g., “http://IMSe.com/Her”), ratherthan accessing a listing of the search results. In some examples, thetop search result is provided as an option for direct access. In someembodiments, the device receives user selection of a second selectableoption (e.g., 958 of FIG. 9K) of the one or more selectable options foraccessing the result of searching at least the first portion of thesearch input using the respective search engine. As illustrated in FIG.9M, in response to receiving user selection of the second selectableoption (e.g., 958 of FIG. 9K), the device displays a search result(e.g., website 970 of FIG. 9M) associated with the second selectableoption (e.g., display the top website that a search of the IMSe searchengine returns). For example, FIG. 9M illustrates display of the IMSewebpage for the movie “Her”, which is at the URL “http://IMSe.com/Her”.By providing an option to the user for accessing a result of searching,the user does not need to first access a list of search results at thewebsite of the respective search engine. Instead, the user can directlyaccess the result of the search (such as the top result of the search).

In some embodiments, in accordance with a determination that the searchinput does not include a search-engine-specifier term, the devicedisplays one or more selectable options for initiating a search of atleast a second portion of the search input using the default searchengine (e.g., search for “IXSe her” using google without displaying anyaffordances or options for performing a search of a non-default searchengine using the search input). If a user activates the selectableoption, the device performs a search based on the search input “IXSEher” using the default search engine (e.g., Google).

In some embodiments, the device detects a search conducted using asecond search engine (e.g., Apple's search engine), wherein the secondsearch engine does not correspond to any search-engine-specifier term.The device associates (e.g., by automatically selecting or afterreceiving from the user) a new search-engine-specifier term (e.g.,“apple”) with the second search engine. In some embodiments, the deviceautomatically, without user intervention, assigns asearch-engine-specifier term for the second search engine (e.g., thedevice assigns the second search engine a search-engine-specifier termof the truncated URL of the second search engine).

In some embodiments, the device receives a second search input. Thedevice determines whether the second search input includes asearch-engine-specifier term (e.g. when the first word of the searchinput is “apple”). In accordance with a determination that the secondsearch input includes the first term as a search-engine-specifier termthat corresponds to the second search engine, the device concurrentlydisplays one or more selectable options for initiating a search based onat least a third portion of the second search input using the secondsearch engine (e.g., search for “computer” using Apple's search engine)and one or more selectable options for initiating a search based on atleast a second portion of the second search input using the defaultsearch engine (e.g., search for “apple computer” using Google).

In some embodiments, the device receives a user request to associate asecond term with a third search engine, the user request for assigningthe second term as a search-engine-specifier term corresponding to thethird search engine, and the device associates the second term with thethird search engine (e.g., the user can request that a specific term beas the search-engine-specifier term for a particular search engine).Thus, the user can select what types of search inputs will triggeroptions for which search engines. For example, the user can change thesearch-engine-specifier term for Apple's search engine from “apple” to“appl”. In some embodiments, the user can also request to change thesearch-engine-specifier term that is associated with the first searchengine.

In some embodiments, the device displays a search engine selectionaffordance adjacent to a search input area (e.g., search field 950). Thedevice detects activation of the search engine selection affordance,and, in response to activation of the search engine selectionaffordance, displays a plurality of options for a default search engine.For example, the search input area is where the search input is typed inby the user. By displaying options for a default search engine, the useris able to see the list of search engines available for selection as thedefault search engine.

In some embodiments, the device detects selection of a first searchengine option of the plurality of options for a default search engine,the first search engine option associated with a first search engine,and, in response to detecting the selection of the first search engineoption of the plurality of options for a default search engine, thedevice changes the default search engine to the first search engine. Insome embodiments, the user selects, from among various options, a searchengine to be used as the default search engine. Thus, the user is ableto specify which search engine should be used as the default searchengine.

FIGS. 10A-10B are flow diagrams illustrating method 1000 for providingoptions to initiate a search using a search engine in accordance withsome embodiments. Method 1000 is performed at a device (e.g., device300, FIG. 3, or portable multifunction device 100, FIG. 1) with adisplay. Some operations in method 1000 may be combined, the order ofsome operations may be changed, and some operations may be omitted.

As described below, method 1000 provides an intuitive way to displayoptions to initiate a search in accordance with some embodiments. Themethod reduces the cognitive burden on a user when searching, therebycreating a more efficient human-machine interface. For battery-operatedcomputing devices, enabling a user to conduct a search faster and moreefficiently conserves power and increases the time between batterycharges.

At block 1002, the device receives a search input (e.g., 904 of FIG. 9B,952 of FIG. 9K). At block 1004, the device determines whether the searchinput (e.g., 904 of FIG. 9B, 952 of FIG. 9K) includes asearch-engine-specifier term. In some embodiments, the determination iscase-sensitive. In some embodiments, the determination iscase-insensitive. In some embodiments, the device maintains a databasethat maps search-specifier-terms to corresponding search engines.

At block 1006, in accordance with a determination that the search inputincludes a search-engine-specifier term that corresponds to a respectivesearch engine (e.g., the term “IMSe” corresponds to the search engine ofthe Internet Movie Search evaluator server), the device concurrentlydisplays one or more selectable options (e.g., options 906, 908 of FIG.9B, options 954, 956 of FIG. 9K) for initiating a search of at least afirst portion of the search input using the respective search engine(e.g., search for “Her” or “Hercules” using the IMSe search engine) andone or more selectable options (e.g., options 914, 916 of FIG. 9B,options 962, 964 of FIG. 9K) for initiating a search of at least asecond portion of the search input using a default search engine (e.g.,search for “IMSe Her” or “IMSe Hercules” using a default search engine,such as Google). For example, initiating a search using the respectivesearch engine initiates a search that uses the IMSe search engine,rather than simply searching the IMSe website using the default searchengine.

In some embodiments, the at least the first portion of the search inputdoes not include the search-engine-specifier term. In some embodiments,the at least the second portion of the search input includes thesearch-engine-specifier term.

At block 1008, in some embodiments, the device displays a firstidentifier icon (e.g., 906A, 908A of FIG. 9B, 954A, 956A of FIG. 9K)adjacent to each of the one or more selectable options (e.g., options906, 908 of FIG. 9B, 954, 956 of FIG. 9K) for initiating search of atleast the first portion of the search input using the respective searchengine. The device displays a second identifier icon (e.g., 914A, 916Aof FIG. 9B, 962A, 964A of FIG. 9K) adjacent to each of the one or moreselectable options (e.g., options 914, 916 of FIG. 9B, 962, 964 of FIG.9K) for initiating search of at least the second portion of the searchinput using the default search engine. The first identifier icon isdifferent from the second identifier icon. Thus, a user can easilydetermine that the different search options are related to differentsearch engines.

In some embodiments, the one or more selectable options (e.g., 906, 908of FIG. 9B, 954, 956 of FIG. 9K) for initiating the search of at leastthe first portion of the search input using the respective search engineincludes one or more search completion suggestions (e.g., 908 of FIG.9B, 956 of FIG. 9K) received from the respective search engine. (e.g.,the respective search engine selected based on thesearch-engine-specifier term provides suggested search terms). Forexample, although the term “Hercules” was not in the search input, thesearch results presented to the user include the suggestion of searchingfor “Hercules” using the respective search engine.

In some embodiments, the one or more selectable options (e.g., options914, 916 of FIG. 9B, 962, 964 of FIG. 9K) for initiating the search ofat least the second portion of the search input using the default searchengine includes one or more search completion suggestions (e.g., 916 ofFIG. 9B, 964 of FIG. 9K) received from the default search engine (e.g.,the default search engine provides suggested search terms). For example,although the term “Hercules” was not in the search input, the searchresults presented to the user include the suggestion of searching for“Hercules” using the default search engine.

In some embodiments, the search input comprises two or more characterstrings separated by a separation character (e.g., a space) and thesearch-engine-specifier term is a leading character string of the searchinput. In the example of FIG. 9B, the string “IMSe” is separated fromthe string “Her” by a space. The search-engine-specifier term is “IMSe”.

In some embodiments, determining whether the search input includes asearch-engine-specifier term comprises determining whether a leadingword of the search input has a character count that exceeds a thresholdcharacter count (e.g., determining whether the leading word is longerthan 2 letters). In accordance with a determination that that theleading word does not have a character count that exceeds the thresholdcharacter count (e.g., the leading word is 2 letters or less), thedevice reaches a determination that the search input does not include asearch-engine-specifier term.

In some embodiments, the search-engine-specifier term of the searchinput is a second-level domain name of the respective search engine(e.g., the search-engine-specifier term for a search engine ofwww.icloud.com is “icloud”). In some embodiments, thesearch-engine-specifier term of the search input is a third-level domainname of the respective search engine (e.g., the search-engine-specifierterm for a search engine of www.icloud.co.uk is “icloud”).

At block 1010, in some embodiments, in accordance with the determinationthat the search input includes a search-engine-specifier term (e.g.,“IMSe”) that corresponds to the respective search engine, the deviceconcurrently displays one or more selectable options (e.g., 910, 912 ofFIG. 9B, 958, 960 of FIG. 9K) for accessing a result of searching atleast the first portion of the search input using the respective searchengine (e.g., a drop down menu or search result listing has a directlink to the top result(s) for search of “Her” using the IMSe searchengine, such as “Her (2013)” and “Hercules (2014)”). For example, theuser is provided with the option to directly access a website result ofthe searching (e.g., “http://IMSe.com/Her”), rather than accessing alisting of the search results. In some examples, the top search resultis provided as an option for direct access.

In some embodiments, the device receives user selection of a secondselectable option (e.g., 910 of FIG. 9B) of the one or more selectableoptions for accessing the result of searching at least the first portionof the search input using the respective search engine. In response toreceiving user selection of the second selectable option (e.g., 910 ofFIG. 9B), the device displays a search result (e.g., 930 of FIG. 9E)associated with the second selectable option (e.g., display the topwebsite that a search of the IMSe search engine returns). By providingan option to the user for accessing a result of searching, the user doesnot need to first access a list of search results at the website of therespective search engine. Instead, the user can directly access theresult.

At block 1012, in some embodiments, in accordance with a determinationthat the search input (e.g., 924 of FIG. 9D) does not include asearch-engine-specifier term, the device displays one or more selectableoptions (e.g., 926 of FIG. 9D) for initiating a search of at least asecond portion of the search input using the default search engine(e.g., search for “IXSe her” using google without displaying anyaffordances or options for performing a search of a non-default searchengine using the search input). For example, if a user activates theselectable option, the device performs a search based on the searchinput “IXSE her” using the default search engine (e.g., Google).

At block 1014, in some embodiments, the device receives user selectionof a first selectable option (e.g., 906 of FIG. 9B, 954 of FIG. 9K) ofthe one or more selectable options for initiating search of at least thefirst portion of the search input using the respective search engine(e.g., the IMSe search engine). In response to receiving user selectionof the first selectable option, the device initiates search of at leastthe first portion of the search input using the respective search engine(e.g., go to a URL or call an API to search for the results; the searchis requested with the IMSe search engine for using a search query of“Her”). The device receives search result information from therespective search engine (e.g., the IMSe search engine returns the tophit and/or a list of search results). The device displays a searchresult (e.g., 922 of FIG. 9C, 968 of FIG. 9L) based on the search resultinformation. In some examples, the search result information includesthe URLs and/or the titles of the results. For example, the display of asearch result may be done by directing the user to a search resultwebpage (e.g., http://IMSe.com) of the respective search engine.

At block 1016, in some embodiments, the device detects a searchconducted using a second search engine (e.g., Apple's search engine ofFIG. 9G), wherein the second search engine does not correspond to anysearch-engine-specifier term. The device associates (e.g., byautomatically selecting or after receiving from the user) a newsearch-engine-specifier term (e.g., “apple”) with the second searchengine.

At block 1018, in some embodiments, the device automatically, withoutuser intervention, assigns a search-engine-specifier term for the secondsearch engine (e.g., the device assigns the second search engine asearch-engine-specifier term of the truncated URL of the second searchengine).

At block 1020, in some embodiments, the device receives a second searchinput (e.g., 932 of FIG. 9I). The device determines whether the secondsearch input (e.g., 932 of FIG. 9I) includes a search-engine-specifierterm (e.g. when the first word of the search input is “apple”). Inaccordance with a determination that the second search input (e.g., 932of FIG. 9I) includes the first term as a search-engine-specifier termthat corresponds to the second search engine, the device concurrentlydisplays one or more selectable options (e.g., 944 of FIG. 9I) forinitiating a search based on at least a third portion of the secondsearch input using the second search engine (e.g., search for “computer”using Apple's search engine) and one or more selectable options (e.g.,934 of FIG. 9I) for initiating a search based on at least a secondportion of the second search input using the default search engine(e.g., search for “apple computer” using Google).

At block 1022, in some embodiments, the device receives a user requestto associate a second term with a third search engine, the user requestfor assigning the second term as a search-engine-specifier termcorresponding to the third search engine, and the device associates thesecond term with the third search engine (e.g., the user can requestthat a specific term be as the search-engine-specifier term for aparticular search engine). Thus, the user can select what types ofsearch inputs will trigger options for which search engines. Forexample, the user can change the search-engine-specifier term forApple's search engine from “apple” to “appl”. In some embodiments, theuser can also request to change the search-engine-specifier term that isassociated with the first search engine.

In some embodiments, the device displays a search engine selectionaffordance adjacent to a search input area (e.g., search field 902). Thedevice detects activation of the search engine selection affordance,and, in response to activation of the search engine selectionaffordance, displays a plurality of options for a default search engine.For example, the search input area is where the search input is typed inby the user. By displaying options for a default search engine, the useris able to see the list of search engines available for selection as thedefault search engine.

In some embodiments, the device detects selection of a first searchengine option of the plurality of options for a default search engine,the first search engine option associated with a first search engine,and, in response to detecting the selection of the first search engineoption of the plurality of options for a default search engine, thedevice changes the default search engine to the first search engine. Insome embodiments, the user selects, from among various options, a searchengine to be used as the default search engine. Thus, the user is ableto specify which search engine should be used as the default searchengine.

Note that details of the processes described above with respect tomethod 1000 (e.g., FIGS. 10 and 9A-9M) are also applicable in ananalogous manner to the methods described above. For example, methods600 and 800 may include one or more of the characteristics of thevarious methods described above with reference to method 1000. Forbrevity, these details are not repeated below. The various methods andtechniques described above with reference to method 1000 may beoptionally implemented as one or more units, such as those describedwith regard to FIG. 11.

As shown in FIG. 11, an electronic device 1100 includes a display unit1102 configured to display a user interface, a touch-sensitive surfaceunit 1104 configured to receive user contacts; and a processing unit1106 coupled to the display unit 1102 and the touch-sensitive surfaceunit 1104. In some embodiments, the processing unit 1106 includes adisplay enabling unit 1108, a receiving unit 1110, a determining unit1112, and an obtaining unit 1114. The units of FIG. 11 may be used toimplement the various techniques and methods described above withrespect to FIGS. 5-10.

In some embodiments, the display enabling unit 1108 is configured tocause a display of a user interface (or portions of a user interface) inconjunction with the display unit 1102. For example, the displayenabling unit 1108 may be used for: in accordance with a determinationthat the search input does not meet the remote-search criteria,displaying, on the display, local search result information thatcorresponds to the one or more local search results; concurrentlydisplaying, on the display, remote search result information thatcorresponds to the one or more remote search results and local searchresult information that corresponds to the one or more local searchresults; displaying one or more search results obtained based on thereceived search input; in response to receiving the request to previewthe respective search result, displaying a preview of content of therespective search result, wherein the preview of content of therespective search result includes one or more actionable user interfaceobjects that, when activated, cause the device to perform an operationassociated with the respective search result; and in accordance with adetermination that the search input includes a search-engine-specifierterm that corresponds to a respective search engine, concurrentlydisplaying one or more selectable options for initiating a search of atleast a first portion of the search input using the respective searchengine and one or more selectable options for initiating a search of atleast a second portion of the search input using a default searchengine.

In some embodiments, the receiving unit 1110 is configured to receiveinput. The input may be received, for example, through the use of thetouch-sensitive surface unit 1104. For example, the receiving unit 1110may be used for: receiving a search input; and receiving a request topreview a respective search result of the one or more search results.

In some embodiments, the determining unit 1112 is configured to makedeterminations. For example, the determining unit 1112 may be used for:determining whether the search input meets remote-search criteria; anddetermining whether the search input includes a search-engine-specifierterm.

In some embodiments, the obtaining unit 1114 is configured to obtaininformation. For example, the obtaining unit 1114 may be configured toobtain search results, such as local search results and remote searchresults. In some embodiments, one or more obtaining units 1114 areincluded in processing unit 1106. For example, a first obtaining unitmay obtain local search results and a second obtaining unit may obtainremote search results. For example, the obtaining unit may be used for:obtaining one or more local search results based on the search input;and obtaining one or more remote search results based on the searchinput.

The operations in the information processing methods described above maybe implemented by running one or more functional modules in informationprocessing apparatus such as general purpose processors or applicationspecific chips. These modules, combinations of these modules, and/ortheir combination with general hardware (e.g., as described above withrespect to FIGS. 1A, 1B, and 3) are all included within the scope ofprotection of the invention.

The operations described above with reference to the figures may beimplemented by components depicted in FIGS. 1A-1B. For example, displayoperations and determination operations may be implemented by eventsorter 170, event recognizer 180, and event handler 190. Event monitor171 in event sorter 170 detects a contact on touch-sensitive display112, and event dispatcher module 174 delivers the event information toapplication 136-1. A respective event recognizer 180 of application136-1 compares the event information to respective event definitions186, and determines whether a first contact at a first location on thetouch-sensitive surface corresponds to a predefined event or sub-event,such as selection of an object on a user interface. When a respectivepredefined event or sub-event is detected, event recognizer 180activates an event handler 190 associated with the detection of theevent or sub-event. Event handler 190 may utilize or call data updater176 or object updater 177 to update the application internal state 192.In some embodiments, event handler 190 accesses a respective GUI updater178 to update what is displayed by the application. Similarly, it wouldbe clear to a person having ordinary skill in the art how otherprocesses can be implemented based on the components depicted in FIGS.1A-1B.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. An electronic device, comprising: a display; one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: receiving a search input; determining whether the search input includes a search-engine-specifier term; and in accordance with a determination that the search input includes a search-engine-specifier term that corresponds to a respective search engine, concurrently displaying, on the display, one or more selectable options for initiating a search of at least a first portion of the search input using the respective search engine and one or more selectable options for initiating a search of at least a second portion of the search input using a default search engine.
 2. The electronic device of claim 1, wherein the at least the first portion of the search input does not include the search-engine-specifier term.
 3. The electronic device of claim 1, wherein the at least the second portion of the search input includes the search-engine-specifier term.
 4. The electronic device of claim 1, the one or more programs further including instructions for: displaying, on the display, a first identifier icon adjacent to each of the one or more selectable options for initiating search of at least the first portion of the search input using the respective search engine; displaying, on the display, a second identifier icon adjacent to each of the one or more selectable options for initiating search of at least the second portion of the search input using the default search engine; and wherein the first identifier icon is different from the second identifier icon.
 5. The electronic device of claim 1, the one or more programs further including instructions for: receiving user selection of a first selectable option of the one or more selectable options for initiating search of at least the first portion of the search input using the respective search engine; in response to receiving user selection of the first selectable option, initiating search of at least the first portion of the search input using the respective search engine; receiving search result information from the respective search engine; and displaying, on the display, a search result based on the search result information.
 6. The electronic device of claim 1, wherein the one or more selectable options for initiating the search of at least the first portion of the search input using the respective search engine includes one or more search completion suggestions received from the respective search engine.
 7. The electronic device of claim 1, wherein the one or more selectable options for initiating the search of at least the second portion of the search input using the default search engine includes one or more search completion suggestions received from the default search engine.
 8. The electronic device of claim 1, wherein the search input comprises two or more character strings separated by a separation character and the search-engine-specifier term is a leading character string of the search input.
 9. The electronic device of claim 1, wherein determining whether the search input includes a search-engine-specifier term comprises determining whether a leading word of the search input has a character count that exceeds a threshold character count, and the one or more programs further including instructions for: in accordance with a determination that that the leading word does not have a character count that exceeds the threshold character count, reaching a determination that the search input does not include a search-engine-specifier term.
 10. The electronic device of claim 1, wherein the search-engine-specifier term of the search input is a second-level domain name of the respective search engine.
 11. The electronic device of claim 1, wherein the search-engine-specifier term of the search input is a third-level domain name of the respective search engine.
 12. The electronic device of claim 1, the one or more programs further including instructions for: in accordance with the determination that the search input includes a search-engine-specifier term that corresponds to the respective search engine, concurrently displaying, on the display, one or more selectable options for accessing a result of searching at least the first portion of the search input using the respective search engine.
 13. The electronic device of claim 12, the one or more programs further including instructions for: receiving user selection of a second selectable option of the one or more selectable options for accessing the result of searching at least the first portion of the search input using the respective search engine; and in response to receiving user selection of the second selectable option, displaying, on the display, a search result associated with the second selectable option.
 14. The electronic device of claim 1, the one or more programs further including instructions for: detecting a search conducted using a second search engine, wherein the second search engine does not correspond to any search-engine-specifier term; and associating a new search-engine-specifier term with the second search engine.
 15. The electronic device of claim 14, the one or more programs further including instructions for: automatically, without user intervention, assigning a search-engine-specifier term for the second search engine.
 16. The electronic device of any of claim 15, the one or more programs further including instructions for: receiving a second search input; determining whether the second search input includes a search-engine-specifier term; and in accordance with a determination that the second search input includes the first term as a search-engine-specifier term that corresponds to the second search engine, concurrently displaying, on the display, one or more selectable options for initiating a search based on at least a third portion of the second search input using the second search engine and one or more selectable options for initiating a search based on at least a second portion of the second search input using the default search engine.
 17. The electronic device of claim 1, the one or more programs further including instructions for: receiving a user request to associate a second term with a third search engine, the user request for assigning the second term as a search-engine-specifier term corresponding to the third search engine; and associating the second term with the third search engine.
 18. The electronic device of any of claim 1, the one or more programs further including instructions for: in accordance with a determination that the search input does not include a search-engine-specifier term, displaying, on the display, one or more selectable options for initiating a search of at least a second portion of the search input using the default search engine.
 19. The electronic device of claim 1, the one or more programs further including instructions for: displaying, on the display, a search engine selection affordance adjacent to a search input area; detecting activation of the search engine selection affordance; and in response to activation of the search engine selection affordance, displaying, on the display, a plurality of options for a default search engine.
 20. The electronic device of claim 19, the one or more programs further including instructions for: detecting selection of a first search engine option of the plurality of options for a default search engine, the first search engine option associated with a first search engine; and in response to detecting the selection of the first search engine option of the plurality of options for a default search engine, changing the default search engine to the first search engine.
 21. A method, comprising: at an electronic device a display: receiving a search input; determining whether the search input includes a search-engine-specifier term; and in accordance with a determination that the search input includes a search-engine-specifier term that corresponds to a respective search engine, concurrently displaying one or more selectable options for initiating a search of at least a first portion of the search input using the respective search engine and one or more selectable options for initiating a search of at least a second portion of the search input using a default search engine.
 22. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device with a display, the one or more programs including instructions for: receiving a search input; determining whether the search input includes a search-engine-specifier term; and in accordance with a determination that the search input includes a search-engine-specifier term that corresponds to a respective search engine, concurrently displaying one or more selectable options for initiating a search of at least a first portion of the search input using the respective search engine and one or more selectable options for initiating a search of at least a second portion of the search input using a default search engine. 